Spring生态系统没必要多说什么,肯定要掌握不让怎么找工作。
■ Jersey
Jersey是一个REST框架,它提供JAX-RS参考实现等。Jersey提供了自己的api,这些api通过附加的特性和实用程序扩展了JAX-RS工具包,从而进一步简化了RESTful服务和客户端开发。Jersey还公开了许多扩展spi,以便开发人员可以扩展Jersey以最适合他们的需求。
■ MyBatis
MyBatis是一个一流的持久性框架,支持自定义SQL、存储过程和高级映射,它几乎消除了JDBC代码、参数手动设置和结果检索。 官网:https://mybatis.org/mybatis-3/ github:https://github.com/mybatis/mybatis-3
■ MyBatis-Plus
myabtis-plus是国内开发者再MyBatis上进行升级开发而来, 官网:https://baomidou.com/
■ Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 官网:http://hibernate.org/
■ jdbcTemplate/dbutils
俩个小而美丽的数据库操作工具类库 化操作持久层的代码。只需要编写接口就可以。
■ Apache ShardingSphere
Apache ShardingSphere定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。支持数据分片、读写分离、多数据副本、数据加密、影子库压测等功能。
官网:https://shardingsphere.apache.org/ github:https://github.com/apache/shardingsphere
■ Mycat
Mycat是数据库分库分表中间件。 官网:http://www.mycat.org.cn/ github:https://github.com/MyCATApache
■ Excel读写
Alibaba EasyExcel
Java解析、生成Excel比较有名的框架有Apache poi、jxl。 github:https://github.com/alibaba/easyexcel
Apache POI
一个用于读写Microsoft Office二进制和OOXML文件格式的Java库,可用于读写Excel 97-2008。 github:https://github.com/apache/poi
Apache Commons CSV
Apache Commons CSV库提供了用于读取和写入各种类型CSV文件的接口。 github:https://github.com/apache/commons-csv
Java CSV
Java CSV是一个小型、快速且开源Java库,用于读、写各种CSV文件。 官网:https://www.csvreader.com/java_csv.php API:http://javacsv.sourceforge.net/
Super CSV
Super CSV是一个快速、免费跨平台的CSV格式数据的读写库,可以方便的处理对象、Map、列表的读写操作,以及自动化的类型转换和数据检查功能。
官网:http://super-csv.github.io/super-csv/index.html github:https://github.com/super-csv/super-csv
■ JSON读写
1.Jackson Jackson被称为Java的标准JSON库,号称“Java的最佳JSON解析器”。 github:https://github.com/FasterXML/jackson
2.Gson Gson是谷歌开源的一个Java库,可用于将Java对象转换为其JSON表示形式。它还可以用于将JSON字符串转换为等效的Java对象。 github:https://github.com/google/gson
3.fastjson fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。 github:https://github.com/alibaba/fastjson
■ XML读写
1.dom4j dom4j是用于处理XML的开源框架,该框架与XPath集成在一起,并完全支持DOM、SAX、JAXP和Java平台。 github:https://github.com/dom4j/dom4j 官网:https://dom4j.github.io/
2.StAX StAX全称Streaming API for XML,一种全新的、基于流的Java XML解析标准类库。
3.jaxb-api jaxb-api用于执行XML文档和Java对象之间的映射。 文档:https://docs.oracle.com/javase/8/docs/api/javax/xml/bind/JAXB.html
4.XStream XStream是一个可以轻易的将Java对象和xml文档相互转换的类库。 官网:http://x-stream.github.io/
■ IO读写
1.Apache Commons IO Apache Commons IO是一个实用程序库,可协助开发IO功能。
官网:https://commons.apache.org/proper/commons-io/
2.Okio
Okio是对java.io和java.nio的补充,使访问、存储和处理数据变得更加容易。
github:https://github.com/square/okio
■ HTTP客户端
1.OkHttp
OkHttp是一个HTTP客户端,使用OkHttp很容易,它的请求/响应API具有流畅的构建器和不变性。它支持同步阻塞调用和带有回调的异步调用。
github:https://github.com/square/okhttp
官网:https://square.github.io/okhttp/
2.Apache HttpClient
Apache HttpClient提供了对基本HTTP协议的强大支持,用于构建基于HTTP的客户端。
官网:http://hc.apache.org/index.html
github:https://github.com/apache/httpcomponents-client
■ Java Bean复制
1.Cglib BeanCopier Cglib库内的BeanCopier提供了ava Bean到Java Bean的复制功能,性能优于Spring BeanUtils。 2.Spring BeanUtils Spring框架的Spring Beans库中的BeanUtils也实现了Java Bean到Java Bean的复制。 3.Dozer Dozer是Java Bean到Java Bean映射器,它以递归方式将数据从一个对象复制到另一个对象。 github:https://github.com/DozerMapper/dozer 文档:https://dozermapper.github.io/gitbook/
■ Redis客户端
1.Redission Redis推荐的Java客户端Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。 github:https://github.com/redisson/redisson/
2.Jedis
Redis推荐的Java客户端。 github:https://github.com/xetorthio/jedis
■ 数据库连接池
数据库连接池提供了一套高效的连接分配、使用策略, 最终实现连接的高效管理。 1.HikariCP 快速、简单、可靠。HikariCP是“零开销”生产就绪的JDBC连接池。 github:https://github.com/brettwooldridge/HikariCP
2.Druid
Druid是Java语言中最好的数据库连接池之一,Druid能够提供强大的监控和扩展功能。 github:https://github.com/alibaba/druid/
3.Tomcat JDBC JDBC连接池是Apache Commons DBCP连接池的替代品。 官网:http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html
■ 网络编程
1.Netty Netty是一个广泛使用的Java网络编程框架。 github:https://github.com/netty/netty 官网:https://netty.io/
■ 文件上传
1.Apache Commons FileUpload Apache Commons FileUpload使高性能的文件上传功能变得容易。 官网:http://commons.apache.org/proper/commons-fileupload/
■ 发送邮件
1.Apache Commons Email Apache commons Email旨在提供用于发送电子邮件的API,它建立在Java Mail API之上,它的目标就是简便。 官网:http://commons.apache.org/proper/commons-email/
■ 编码和解码
1.Apache Commons Codec Apache Commons Codec提供了常见编码器和解码器的实现,例如Base64,Hex,Phonetic和URL。 官网:http://commons.apache.org/proper/commons-codec/
■ IO操作
1.Apache Commons IO 简单、快捷的IO操作。 官网:http://commons.apache.org/proper/commons-io/index.html 对象池 1.Apache Commons Pool 提供了通用对象池。 官网:http://commons.apache.org/proper/commons-pool/
■ java.lang包工具类
1.Apache Commons Lang 为java.lang中的类提供额外的功能,例如StringUtils、DateUtils、RandomUtils、FastDateFormat(线程安全版本的SimpleDateFormat)。 官网:http://commons.apache.org/proper/commons-lang/index.html
■ 集合操作
1.Apache Commons Collections 集合相关操作工具类。 官网:http://commons.apache.org/proper/commons-collections/ 2.Guava Guava是Google的一组核心Java库,除了可以操作我们常用的集合类型之外,还可以操作新的集合类型(例如多图和多集)和不可变的集合。 github:https://github.com/google/guava
■ 全能型工具类
1.Guava Guava是Google的一组核心Java库,其中包括新的集合类型(例如多图和多集),不可变的集合,图形库以及用于并发,I / O,哈希,缓存,基元,字符串等的实用程序!它广泛用于Google的大多数Java项目中,也被许多其他公司广泛使用。 github:https://github.com/google/guava 2.Hutool Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。 github:https://github.com/looly/hutool
■ 日期和时间操作
1.Joda-Time Joda-Time提供了Java日期和时间类的质量替代。 官网:https://www.joda.org/joda-time/
■ 单元测试
1.JUnit 官网:https://junit.org/junit5/
2.Mockito Mockito是一个Java单元测试模拟框架。 官网:https://site.mockito.org/
3.PowerMock PowerMock也是一个Java单元测试模拟框架,它可以模拟静态方法、构造函数、最终类和方法、私有方法、删除静态初始化器等。 官网:http://powermock.github.io/
4.moco 在日常接口测试的工作中,经常需要依赖其他系统的API,但是联调不常有,只能自己通过mock完成数据依赖。Moco是一个模拟服务器端服务的项目,可以用于测试打桩。 github:https://github.com/dreamhead/moco
■ 安全框架
1.Apache Shiro
Apache Shiro是一个功能强大且易于使用的Java安全框架,它用于身份验证、授权、加密和会话管理。使用Shiro易于理解的API,可以快速轻松地保护任何应用程序,从最小的移动应用程序到最大的Web和企业应用程序。
官网:http://shiro.apache.org/
■ 日志
1.SLF4J + Logback SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现,它是一个日志接口。 Logback是由log4j创始人设计的又一个开源日志组件,它是一个日志的实现。 SLF4J官网:http://www.slf4j.org/ Logback官网:https://logback.qos.ch/
■ 对象池
1.Apache Commons Pool Apache Commons Pool提供了对象池API和一系列对象池实现。 官网:https://commons.apache.org/proper/commons-pool/
■ 基本网络通讯
1.Apache Commons Net Apache Commons Net库实现了许多基本互联网协议的客户端。该库的目的是提供基本协议访问,而不是更高级别的抽象。 官网:http://commons.apache.org/proper/commons-net/index.html
■ 作业调度框架(定时任务)
1.Quartz Quartz是一个开源的作业调度框架,它完全由Java编写,能够用它来为执行一个作业而创建简单的或复杂的调度。 官网:http://www.quartz-scheduler.org/ github:https://github.com/quartz-scheduler/quartz
2.ElasticJob ElasticJob是一种分布式调度解决方案,解决了Quartz不支持分布式的弊端。Elastic job主要的功能有支持弹性扩容,通过Zookepper集中管理和监控job,支持失效转移等。 github:https://github.com/apache/shardingsphere-elasticjob
■ 配置中心
1.Nacos Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos的动态配置服务让您能够以中心化、外部化和动态化的方式管理所有环境的配置。动态配置消除了配置变更时重新部署应用和服务的需要。配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易。 官网:https://nacos.io/ github:https://github.com/alibaba/nacos
2.Spring Cloud Config Spring Cloud Config为分布式系统中的外部化配置提供服务器端和客户端支持。使用Config Server,您可以在中心位置管理所有环境中应用程序的外部属性。 文档:https://cloud.spring.io/spring-cloud-config/reference/html/
3.Apollo Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。 github:https://github.com/ctripcorp/apollo
■ 限流
1.Guava RateLimiter RateLimiter基于令牌桶算法,即以用户设定的恒定速率向令牌桶内放置令牌,用户来执行任务时,只有拿到令牌才能执行。
2.Sentinel Sentinel是面向分布式服务架构的高可用防护组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助用户保障微服务的稳定性。 官网:https://sentinelguard.io/ github:https://github.com/alibaba/Sentinel
■ 熔断降级
当调用链路中某个资源出现不稳定,例如,表现为timeout,异常比例升高的时候,则对这个资源的调用进行限制,并让请求快速失败,避免影响到其它的资源,最终产生雪崩的效果。
1.Sentinel Sentinel通过并发线程数进行限制和通过响应时间对资源进行降级两种手段对资源调用进行限制,让请求快速失败,避免影响到其它的资源。 官网:https://sentinelguard.io/ github:https://github.com/alibaba/Sentinel
2.Hystrix Hystrix 通过线程池的方式,来对资源进行了隔离。这样做的好处是资源和资源之间做到了最彻底的隔离。缺点是除了增加了线程切换的成本,还需要预先给各个资源做线程池大小的分配。Hystrix不再处于主动开发中,并且当前处于维护模式,官方推荐使用Resilience4j替代。 github:https://github.com/Netflix/Hystrix
3.Resilience4j Resilience4j是受Netflix Hystrix启发的轻量级容错库,但专为Java 8和函数式编程而设计。轻巧,因为该库仅使用Vavr,而Vavr没有任何其他外部库依赖项。 github:https://github.com/resilience4j/resilience4j
■ 序列化
1.Kryo Kryo是用于Java的快速高效的二进制对象图序列化框架。该项目的目标是高速,小尺寸和易于使用的API。每当需要将对象持久保存到文件,数据库还是通过网络时,该项目都是有用的。 github:https://github.com/EsotericSoftware/kryo
2.Hessian Hessian是一款支持多种语言进行序列化操作的框架技术,同时在进行序列化之后产生的码流也较小,处理数据的性能方面远超于java内置的jdk序列化方式。 官网:http://hessian.caucho.com/
3.Protobuf Protobuf是谷歌开源的一个灵活的、高效的用于序列化数据的协议。相比较XML和JSON格式,protobuf更小、更快、更便捷。 github:https://github.com/protocolbuffers/protobuf 官网:https://developers.google.com/protocol-buffers/
■ RPC框架
1.Dubbo Apache Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
官网:http://dubbo.apache.org/zh-cn/ github:https://github.com/apache/dubbo
2.Thrift Thrift是一个软件框架(远程过程调用框架),用来进行可扩展且跨语言的服务的开发。 官网:http://thrift.apache.org/
3.gRPC gRPC是一个现代的、开源的、高性能的远程过程调用(RPC)框架,可以在任何地方运行。官网:https://www.grpc.io/ github:https://github.com/grpc/grpc