做了十多年的Java開發,和大家介紹一下我最近一兩年用的比較多的Java框架(包括軟件、中間件)。
Spring:從剛開始工作的時候就在用;是一個J2EE框架,提供了對IOC的良好支持,也提供了對AOP技術非常好的封裝;
SpringMVC:也是Spring的一個子項目,實現了MVC設計模式,目標是解耦;
MyBatis、Hibernate:兩個都是ORM框架,現在Hibernate用的少了;也有用到SpringDataJPA,這個可以看做是更高級的封裝,可以通過方法的命名,實現SQL語句;
可以看到,上面就是SSM框架,現在還是比較流行的。
Maven:新老項目都是基于Maven構建,它是一個項目管理工具,主要功能有:項目構建;Jar包的依賴管理;版本管理;持續集成等等等等;
JUint:單元測試工具;也是老朋友了;測試框架還有不少,比如SpringTest,JMock等等。
Shiro、SpringSecurity:關于安全認證的框架,用于用戶身份認證,權限授權、加密、會話管理等;
CxforAxis:老項目WebService用的比較多一些;歷史問題,還是要了解一下;
Quartz:定時服務框架,一般都是單機應用;
Elastic-job:分布式定時服務框架,當當出品;
log4j、logback:各種日志工具;現在會有一些日志采集分析的框架,比如ELK;
Ehcache:緩存框架,也都是用于單機項目;
Redis:說道緩存,現在更多的使用Memcached、Redis;當然Redis也不局限于緩存;
SpringBoot:用于搞定其他框架的一個框架,主要是提供了各種啟動器、簡化了各種配置、方便和其他框架集成、開發者能夠快速上手。
Dubbo:一個微服務框架,阿里出品;
SpringCloud:另外一套微服務框架,這個就多了,例如:Config(配置管理中心)、NetflixEureka(服務注冊、服務發現)、Hystrix(斷路器,這個官方好像已經不建議使用了,又有新的了)、Feign(聲明式服務調用組件)、Ribbon(客戶端負載均衡)、Zuul(網關)、Bus(消息總線)等等。
DubboorSpringCloud:這個看公司的技術棧,用到哪個學哪個,都沒有用到,建議學SpringCloud。
RestfulAPI、RPC:不同風格的服務;
Swagger:RestfulAPI自動生成工具;
消息隊列:常用RabbitMQ和Kafka,一種保存消息的容器,也用于系統間解耦;
MongoDB:BSON(類似JSON)格式的內存數據庫;
Zookeeper:一個分布式協調服務;
Nginx:或其他負載均衡軟件;
Docker:容器技術。