現在企業開發時,Java所用到的主流框架有哪些?


讓我們詳細研究一下 2020 年的頂級 Java 框架。

框架 #1:Spring

該框架排名第一,因為它具有開發複雜 Web 應用程序的出色能力,而且,這些應用程序因性能突出而廣受讚譽。它使 Java 開發人員能夠輕鬆地創建企業級應用程序。

Web 應用程序開發人員可以證明 Spring 框架的能力。這就是 Spring 成為 Java 開發人員最愛的原因。下面的數據可以證明這一點。以下是開發者(選擇 Java 作為首選的三種編程語言之一)對 Java 框架的看法:

在開發人員的選擇中,Spring MVC 和 Spring Boot 遠遠領先於其他 Java 技術。對於開發人員來說,這裡的一大優勢是他們可以不受其他模塊約束而專注於一個模塊,因為 Spring 利用了控制反轉(IoC)。

這個框架的其他一些優點是一個全面的配置模型,支持傳統數據庫和現代數據庫(如 NoSQL),並通過支持面向方面編程來支持內聚開發。它提供了一些模塊,如 Spring MVC、Spring Core、Spring Boot、SpringTransaction 等。

框架 #2:Hibernate

作為一個對象關係映射(ORM)數據庫,它改變了我們以前查看數據庫的方式。儘管它不是一個全棧框架,但它可以極其輕鬆地為多個數據庫轉換數據。

它支持多個數據庫的能力使它很容易擴展,無論應用程序的大小或用戶的數量如何。它速度快、功能強大、易於擴展、修改和配置。

框架 #3:Struts

該框架幫助自定義軟件開發人員創建易於維護的企業級應用程序。這個框架的 USP 是它的插件。它們是 JAR 包,這意味著它們是可移植的。

Hibernate 插件和 Spring 插件分別可以用於對象關係映射和依賴注入。使用此 Java 框架開發應用程序可以減少處理時間,因為它提供了組織良好的 Java、JSP 和 Action 類。

框架 #4:Play

使用該框架的頂尖公司包括 LinkedIn、三星、衛報、Verizon 等。這隻能說明它的可信度。該框架提供了速度、可伸縮性和性能。

它的用戶界面非常簡單,使移動應用程序開發人員可以快速理解它。它主要用於開發需要統一內容創建的應用程序。

框架 #5:Google Web Toolkit

這個框架用於客戶端開發,類似 JavaScript。它是一個開源的 Java 框架,這意味著它是免費的。谷歌廣泛使用了這個框架,谷歌產品如 AdSense、谷歌錢包、AdWords 都是使用它編寫的。

藉助 GWT 代碼,可以輕鬆地開發和調試 Ajax 應用程序。Java 開發人員更喜歡使用這個框架來編寫複雜的應用程序。書籤、跨瀏覽器可移植性、歷史記錄和管理是它的一些特性。

框架 #6:Grails

這個開源框架在企業級 Java Bean 中非常流行。它可用於為內容管理系統、Restful Web 服務和電子商務網站創建健壯的、可伸縮的應用程序。

它可以與 Java Spring、Hibernate、quartz、EE 容器和 SiteMesh 等其他 Java 技術搭配使用。它的部分優點包括簡單的 GORM、靈活的配置文件、帶有多個插件的高級插件系統、簡單的對象映射庫以及一個支持和響應社區。

框架 #7:Blade

任何自定義應用程序開發人員都可以在一天內快速理解這個框架。Java Blade 於 2015 年推出,以簡單和輕量級著稱。這個框架最大的亮點是它快速創建 Web 應用程序的能力。

它是一個全棧 Web 開發框架,提供一個簡單而簡潔的編碼結構。Blade 基於 Java 8,它提供了 RESTful 風格的路由接口。它支持 webjar 資源和插件擴展。

框架 #8:JavaServer Faces

這個 Java 框架是由 Oracle 開發的。它可用於創建企業應用程序、本機應用程序和 Web 應用程序開發。它的一大優勢是可以將表示層與應用程序代碼輕鬆地連接。

它提供了一個用於表示和管理 UI 組件的 API 集。它具有清晰的體系結構,可以區分應用程序邏輯和表示。JSF 使用 XML 進行視圖處理,而不是 Java。

框架 #9:Vaadin

用於精簡 Java 開發的優秀平臺。您可以使用它來獲得自定義的 Web 開發服務。該框架的一大優點是服務器和瀏覽器之間的通信順暢。

Vaadin 提供了從 Java 虛擬機直接訪問 DOM 的功能。在最新發布的版本中,它被分成了兩部分。Vaadin Flow 是一個輕量級框架,可以實現服務器端通信和路由。

小結

在閱讀了所有頂級的 Java 框架之後,我希望您能有一個更清晰的認識。瞭解頂級框架不是什麼挑戰,但是找到最適合您需求的框架是一個挑戰!


湘北智造


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


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

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

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

可以看到,上面就是SSM框架,現在還是比較流行的。

  • Maven:新老項目都是基於Maven構建,它是一個項目管理工具,主要功能有:項目構建;Jar包的依賴管理;版本管理;持續集成等等等等;

  • JUint:單元測試工具;也是老朋友了;測試框架還有不少,比如Spring Test,JMock等等。

  • Shiro、Spring Security:關於安全認證的框架,用於用戶身份認證,權限授權、加密、會話管理等;

  • Cxf or Axis:老項目WebService用的比較多一些;歷史問題,還是要了解一下;

  • Quartz:定時服務框架,一般都是單機應用;

  • Elastic-job:分佈式定時服務框架,噹噹出品;

  • log4j、logback:各種日誌工具;現在會有一些日誌採集分析的框架,比如ELK;

  • Ehcache:緩存框架,也都是用於單機項目;

  • Redis:說道緩存,現在更多的使用Memcached、Redis;當然Redis也不侷限於緩存;

  • Spring Boot:用於搞定其他框架的一個框架,主要是提供了各種啟動器、簡化了各種配置、方便和其他框架集成、開發者能夠快速上手。

  • Dubbo:一個微服務框架,阿里出品;

  • Spring Cloud:另外一套微服務框架,這個就多了,例如:Config(配置管理中心)、Netflix Eureka(服務註冊、服務發現)、Hystrix(斷路器,這個官方好像已經不建議使用了,又有新的了)、Feign(聲明式服務調用組件)、Ribbon(客戶端負載均衡)、Zuul(網關)、Bus(消息總線)等等。

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

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

  • Swagger:Restful API自動生成工具;

  • 消息隊列:常用RabbitMQ和Kafka,一種保存消息的容器,也用於系統間解耦;

  • MongoDB:BSON(類似JSON)格式的內存數據庫;

  • Zookeeper:一個分佈式協調服務;

  • Nginx:或其他負載均衡軟件;

  • Docker:容器技術。

我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。


會點代碼的大叔


自己項目中用的比較多的技術,不僅僅是框架,有下列這些:

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:性能分析工具!

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

肯定還有什麼是你覺得很重要的?煩請補充,謝謝。。。


此生唯一


至於各種企業會用到哪些框架,有的公司的歷史項目很多,新項目又不得不基於老項目,那麼很多以前用的框架和基礎還是得帶著走。另外比如出了新框架和新技術,但是公司本身的團隊沒有成本去探索,業務方面也就用不到那麼高大上的東西。

現在企業開發時,Java所用到的主流框架有哪些:

Spring:Spring團隊一向強大"如果一個Spring的註解解決不了你的問題,那就用2個。"

MyBatis和Hibernate,在很多公司用的都挺多的。拋開絕對性不談,更多的小一些的企業看重團隊整體的能力再決定用什麼。會MyBatis的很多,那麼就用MyBatis,會Hibernate的多,就用Hibernate。但是總體來說Hibernate比MyBatis相對更難。至於MyBatis支持自定義的SQL,方便優化什麼的,一般人都沒有時間和能力優化數據庫。

Struts2,這是老牌的框架了,現在的企業新項目中很少用到,之前是因為嚴重的漏洞幾乎進了冷宮。而且使用這個框架後的開發方式並不他符合現在的理念,所以在接觸框架的時候,已經完全可以不用學Struts2了。

總結:

很多非互聯網企業,大多在國企有部分老項目仍然使用SSH,因為系統多數面向內部,也沒有什麼併發所以也沒什麼必要換了。但是如果你去了還要求會用Struts的話,你可以不考慮這家公司了。


傳智播客


1、Spring MVC

Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,從而在使用Spring進行WEB開發時,可以選擇使用Spring的Spring MVC框架或集成其他MVC開發框架。

2、MyBatis

MyBatis 是一款優秀的持久層框架,它支持定製化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java對象)映射成數據庫中的記錄。

3、Dubbo

Dubbo是阿里巴巴公司開源的一個高性能優秀的微服務框架,使得應用可通過高性能的 RPC 實現服務的輸出和輸入功能,可以和Spring框架無縫集成。

Dubbo是一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動註冊和發現。

(1)透明化的遠程方法調用,就像調用本地方法一樣調用遠程方法,只需簡單配置,沒有任何API侵入。

(2)軟負載均衡及容錯機制,可在內網替代F5等硬件負載均衡器,降低成本,減少單點。

(3) 服務自動註冊與發現,不再需要寫死服務提供方地址,註冊中心基於接口名查詢服務提供者的IP地址,並且能夠平滑添加或刪除服務提供者。

4、Maven

Maven是一個項目管理工具,它包含了一個項目對象模型 (Project Object Model),一組標準集合,一個項目生命週期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命週期階段(phase)中插件(plugin)目標(goal)的邏輯。當開發人員使用Maven的時候,用一個明確定義的項目對象模型來描述項目,然後Maven可以應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。

5、Log4j

通過使用Log4j,開發人員可以控制日誌信息輸送的目的地是控制檯、文件、GUI組件,甚至是套接口服務器、NT的事件記錄器、UNIX Syslog守護進程等。也可以控制每一條日誌的輸出格式。通過定義每一條日誌信息的級別,更加細緻地控制日誌的生成過程。以上可以通過一個配置文件來靈活地進行配置,且不需要修改應用的代碼。

6、Redis

支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。


千鋒青島


其實,Spring boot在本質上,就是來回答這個問題的。

Spring boot就是這個世界上最精通企業級java開發(without j2ee)的那批人,通過實踐來告訴我們哪些是主流的框架,以及應用它們的最佳實踐。

他告訴我們,配置應該怎樣管理,日誌、持久化、緩存、Web、消息、監控、集成等企業級開發涉及的一切問題的主流框架有哪些,以及他們的推薦,和他們在框架應用中的最佳實踐。

這就是Spring boot最大的價值所在,他相當於一本最完備的Java企業開發的教科書。

現在流行微服務,其實這是一個更大的課題,他已經超出了開發的範疇,等大家真正掌握之後,可以學習Spring cloud和devops,微服務在本質地上是一個工程課題。


分享到:


相關文章: