首頁 > 科技

2021年Java後端開發程式設計師,必須掌握哪些框架?

2021-06-18 09:37:03

做了十多年的Java開發,和大家介紹一下我最近一兩年用得比較多的Java框架(包括軟體、中介軟體)。

Spring:從剛開始工作的時候就在用;是一個J2EE框架,提供了對IOC的良好支援,也提供了對AOP技術非常好的封裝;

Spring MVC:也是Spring的一個子項目,實現了MVC設計模式,目標是解耦;

MyBatis、Hibernate:兩個都是ORM框架,現在Hibernate用得少了;也有用到Spring Data JPA,這個可以看作是更高階的封裝,可以通過方法的命名,實現SQL語句;

一、單體應用架構

1.Spring:ioc容器和bean管理,解決的是業務邏輯層和其他各層的鬆耦合問題,也起到紐帶和橋樑的作用。

2.Springmvc:目前使用最普遍和最流行的mvc框架。

3.Struts2:也是一款類似於Springmvc功能的mvc框架,它的前身struts1基本沒人使用了。struts2相較於springmvc有諸多劣勢,包括自身漏洞門問題,慢慢走向沒落。現在使用的大部分都是維護的老項目老系統。

4.hibernate:重量級的面向物件的持久層框架,其實它的功能非常強大,由於其自身功能的強大在使用和配置上比較複雜,很多程式設計師待之以鄙夷。hibernate用於中小系統項目還是很合適的,開發效率較高。

5.mybatis:是一款中低量級別的半自動的持久層框架,由於自身使用的靈活性和易於aql調優,目前還是非常流行的,很多大型項目都用到它。

二、微服務架構

微服務架構相對於單體應用架構複雜些,尤其是微服務架構用到分散式應用架構就更為複雜。

1.springboot:

微服務基礎框架,由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。

2.Dubbo:

Dubbo是一個分散式服務框架,致力於提供高效能和透明化的RPC遠端服務呼叫方案,以及SOA服務治理方案。簡單的說,dubbo就是個服務框架,如果沒有分散式的需求,其實是不需要用的,只有在分散式的時候,才有dubbo這樣的分散式服務框架的需求,並且本質上是個服務呼叫的東東,說白了就是個遠端服務呼叫的分散式框架(告別Web Service模式中的WSdl,以服務者與消費者的方式在dubbo上註冊)

3.SpringCloud

Spring Cloud為開發人員提供了快速構建分散式系統中的一些通用模式(例如配置管理,服務發現,斷路器,智慧路由,微代理,控制匯流排,一次性令牌,全局鎖,領導選舉,分散式 會話,群集狀態)。

不僅僅是框架,有下列這些:

1,spring:低侵入式物件管理容器,提供大量註解,方便開發,聲明式事務,整合別的框架變得簡單!

2,springboot:微服務框架,大量現成庫的集合,提供樣板化的配置和開發,簡化初始構建和開發!

3,springcloud:企業級的微服務框架,集成了大量微服務所需要的並能直接使用的庫,比如服務註冊與發現,jvm運行參數獲取,安全認證,斷流器等等!

4,mybatis:持久層框架,輕量級,使sql和程式碼得到解耦,支援動態sql,所以能支援強大複雜的sql語句,查詢結果可與JAVA物件自動對映!

5,druid:連線池,可對sql執行次數,效率等進行監控,可對web請求數等進行監控,提供視覺化頁面!

6,redis:key-value記憶體型快取,可支援多種資料結構的存取,單執行緒保證執行緒安全,可用於業務資料加鎖,計數,生成全局唯一key,設計秒殺系統等等!

7,docker:微服務持續整合部署的容器首選,佔用資源少,可構建一套獨立的環境映象,避免各種環境複雜性的影響!windows可下載boot2docker體驗,非常好用!

8,mycat:分庫分表框架,有多種分庫分表策略以供選擇,簡單配置即可獲得優秀的資料庫超量資料讀寫!

9,mysql:開源關係型資料庫,效能強大!

10,mongodb:非關係型資料庫,熱資料儲存在記憶體中,讀取非常快速,文件式儲存(大物件尤為方便),支援自動分片!

11,AOP:面向切面程式設計,可將非業務的公共部分抽出,比如日誌,安全驗證等等!

12,logback:日誌工具,簡單配置即可獲取全面的日誌列印,和日誌檔案管理!

13,jenkins:持續整合部署工具,通過簡單配置,可實現自動部署!

14,ons,rabbitMq等訊息元件:非同步處理,最終一致性解決方案!

15,nginx:負載均衡的不二之選,極為穩定,效能極好,配置簡單,有多種均衡方式可供選擇,可輕鬆實現前端跨域訪問!

16,SVN/git:版本控制工具,是團隊並行開發的保障!

17,putty/secureCRT:遠端連線工具,方便對遠端執行命令,檢視日誌等!

18,javamelody:整合在程式碼中,可以網頁上檢視實時記憶體,CPU使用率等等效能監控指標!jmap:效能分析工具!

Dubbo or Spring Cloud:這個看公司的技術棧,用到哪個學哪個,都沒有用到,建議學Spring Cloud。

Restful API、RPC:不同風格的服務;

Swagger:Restful API自動生成工具;

訊息佇列:常用RabbitMQ和Kafka,一種儲存訊息的容器,也用於系統間解耦;

MongoDB:BSON(類似JSON)格式的記憶體資料庫;

Zookeeper:一個分散式協調服務;

Nginx:或其他負載均衡軟體;

Docker:容器技術。

以上就是最常用的JAVA開發相關的框架,技術,工具等!


IT145.com E-mail:sddin#qq.com