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