一個非常好的問題。Java是主流開發語言,應用普遍,不同的業務場景會用到很多不同框架。以Web服務開發為例,基本框架可分為數據層、HTTP開發、異步任務、鑒權認證、日志監控等幾大類別。
學習過程中多總結,雖然框架很多,但是可以專題分類,針對常用的幾個框架重點學習,積累起來非常快。
注意學習框架時要挑選當前廣泛使用的Top3,已經過時或者太新還看不清楚未來的框架,可以在需要時再去學習研究。
以Web服務開發為例,常用框架分類總結如下:
1. Spring框架,Spring Boot和Spring Cloud是最常用框架,有非常豐富的組件和易用的功能。
2. 數據層,MySQL數據庫,MyBatis持久層,Flyway版本化管理數據庫SQL腳本,Ali Druid連接池等框架。
MyBatis Plus是國內的一個開源項目,對MyBatis做了進一步增強、簡化開發和提高效率,并且提供了簡單易用的代碼生成器。
Hibernate是另一個經常使用的持久化框架。
3. 緩存系統,最常使用Redis,MongoDB等其他NoSQL也經常使用。
4. 異步消息隊列,常用ActiveMQ,RocketMQ,RabbitMQ,建議選擇一個學習。
5. JSON數據處理,常用Fastjson,Gson,Jackson,Json-lib,推薦Fastjson。
6. 開發工具包,Apache Commons套件,lang, collections, codec, io等功能庫。
7. 網框開發工具包,推薦Apache HttpClient,其他比如OKHttp,Java原生庫HttpURLConnection使用也很普遍。
另外常用的WebClient,Spring框架提供的RestTemplate。
8. 鑒權認證,控制訪問權限,REST接口安全,常用Apache Shiro, Jwt。
9. 異步任務調度,復雜耗時任務,使用Quartz框架異步執行,Spring框架自帶的Schedule可以滿足小型項目使用。
10. 單元測試JUnit + Mockit
11. 日志系統,集成LogBack,接入LogStash配合ELK分析處理。
12. 服務監控,使用Actuator等框架實現運行信息收集和報警,配合圖像化展示工具,比如Prometheus + Grafana + AlertManager
13. Swagger接口文檔
14. Postman接口調試工具
我是工作多年的Web應用架構師,陸續發布關于軟件開發方面的文章,歡迎關注我,了解更多IT專業知識。