做了十多年的Java開發,和大家介紹一下我最近一兩年用得比較多的Java框架(包括軟體、中介軟體)。Spring:從剛開始工作的時候就在用;是一個J2EE框架,提供了對IOC的良好支援,也提供
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開發相關的框架,技術,工具等!
相關文章
做了十多年的Java開發,和大家介紹一下我最近一兩年用得比較多的Java框架(包括軟體、中介軟體)。Spring:從剛開始工作的時候就在用;是一個J2EE框架,提供了對IOC的良好支援,也提供
2021-06-18 09:37:03
IT之家 6 月 18 日訊息 榮耀在前天正式釋出了榮耀 50 手機,該手機搭載驍龍 778G 5G 處理器,支援 66W 超級快充,擁有 1 億畫素超清鏡頭,是榮耀迴歸後在今年推出的高階旗艦系列手
2021-06-18 09:36:07
由於麒麟晶片缺貨,搭載麒麟晶片的華為手機也一直供不應求;為了滿足消費者的需求,華為甚至將老款麒麟晶片以及不支援5G網路的麒麟晶片用在最新的旗艦手機上面,但依舊不能滿足市場
2021-06-18 09:21:39
氣溫逐漸升高,全國各地即將進入燒烤模式,你是否遇到了處理器溫度過高的問題?清灰、改善機箱風道如果效果不明顯,你就需要一款效能更強的散熱器了。新處理器發熱量大,不換散熱器不
2021-06-18 09:19:00
導 讀◆ 榮耀未來競爭蘋果,需做出比肩甚至超越蘋果的產品◆ 加重反壟斷舉措!蘋果裝置或被禁預裝自有App◆ 一加/OPPO合併!劉作虎或將去造車◆ 愛奇藝入局線上教育,推出App「愛奇
2021-06-18 09:14:38
618 步入最後衝刺階段!各大數碼品牌 「貼身肉搏」,臨近收官廝殺尤為激烈。6 月 18 日零點剛開局,聯想便以 2 分鐘破億、1 小時破 8 億的收官戰績再續輝煌,穩居 PC 霸主地位!京東
2021-06-18 09:14:07