2021中使用的10個(gè)優(yōu)秀Java框架
Java是一種強(qiáng)大的語言,當(dāng)與框架相結(jié)合時(shí),Java可以為您提供電子商務(wù),銀行,云計(jì)算,財(cái)務(wù),大數(shù)據(jù),股票市場,且更多的任何域的優(yōu)秀解決方案。
如果您剛剛從Java開始,請參閱Java Live Active使用此博客將通過您需要知道的所有重要概念來開始使用框架。
什么是Java框架?
作為模板或骨架的預(yù)先寫代碼的正文,其中一個(gè)開發(fā)人員可以根據(jù)需要填寫其代碼來使用和重用以創(chuàng)建應(yīng)用程序,以便在他們打算引用其作為框架時(shí)使用的代碼來創(chuàng)建應(yīng)用程序。重用框架使開發(fā)人員能夠在沒有手動(dòng)開銷的情況下從頭開始創(chuàng)建每行代碼的手動(dòng)。Java框架特定于Java編程語言,用作開發(fā)軟件應(yīng)用程序的平臺(tái),Java程序.java框架可以包括用于處理,輸入和管理硬件設(shè)備的預(yù)定義類和功能,以及與系統(tǒng)軟件進(jìn)行交互。這取決于框架的類型,程序員的技能水平,他們試圖完成的東西,以及他們的喜好。
為什么要用框架?
框架為您的應(yīng)用程序提供結(jié)構(gòu)。例如,如果我們有適當(dāng)?shù)臏y試框架,我們可以自動(dòng)化大量的東西并獲得準(zhǔn)確和一致的結(jié)果。同樣的方式如果有orm,web應(yīng)用程序,日志記錄,數(shù)據(jù)管理等框架,它將使開發(fā)人員的生活簡單,并幫助他們專注于業(yè)務(wù)邏輯,而不是擔(dān)心域或應(yīng)用程序中使用的常見代碼。
10個(gè)優(yōu)秀Java框架
雖然Java有許多框架,但這里有一些非常常用類型的框架不同類型 - Web應(yīng)用程序,網(wǎng)絡(luò)應(yīng)用程序,日志記錄,測試,ORM等。注意,這些都有其自己的好處,可以為不同的業(yè)務(wù)工作最佳用例。我們不能說哪個(gè)更好,因?yàn)樗鼈兌荚诓煌膱鼍爸卸己芎谩?/p>
Spring

憑借其依賴注入和面向方面的編程特征的概念,Spring逐行開發(fā)世界。它是一種用于企業(yè)應(yīng)用程序的開源框架。
在春天,開發(fā)人員可以創(chuàng)建松散耦合的模塊,其中依賴性由框架處理,而不是根據(jù)代碼中的庫來處理。
Spring框架是詳盡的,涵蓋了很多功能,包括安全性和配置,易于學(xué)習(xí)。此外,由于它是最受歡迎的Web框架,您可以找到很多文檔和活動(dòng)社區(qū)。
通過配置的所有內(nèi)容,您的代碼將是干凈且易于理解的。
主要概念:
- 依賴注入(DI)(控制的反轉(zhuǎn)) - 在此原則上,而不是依次控制流量的應(yīng)用程序,它使控制到驅(qū)動(dòng)流量的外部控制器。外部控制器是事件。當(dāng)有些事件發(fā)生時(shí),申請流程繼續(xù)。這為應(yīng)用提供了靈活性。在春天,IOC由DI完成,其中三種類型 - Setter注入,方法噴射和構(gòu)造儀注入。
- Bean和Spring上下文 - 在春Spring,對(duì)象稱為bean,并且有一個(gè)beanfactory管理和配置這些bean。您可以將BeanFactory視為實(shí)例化,配置和管理bean的容器。大多數(shù)應(yīng)用程序使用XML(beans.xml)進(jìn)行配置。ApplicationContext哪個(gè)BeanFactory用于更復(fù)雜的應(yīng)用程序,需要事件傳播,聲明機(jī)制和與Spring的方面的面向側(cè)向特征的集成。
- 閱讀關(guān)于一些更多主要的Spring概念。
2.Apache Struts
Apache Struts是Web應(yīng)用程序的另一個(gè)強(qiáng)大的開源框架。它遵循MVC(模型 - 視圖 - 控制器)模型并擴(kuò)展JSP API。在傳統(tǒng)的servlet-jsp方法中,如果用戶提交給我們的詳細(xì)信息說明表單,則該信息然后轉(zhuǎn)到Servlet進(jìn)行處理,或者控制轉(zhuǎn)到下一個(gè)JSP(Java Server Pages - 您可以在其中編寫Java代碼HTML)。由于“View”或演示層理想地沒有業(yè)務(wù)邏輯,這將使復(fù)雜應(yīng)用程序變得令人困惑。
Struts將視圖,控制器和模型(數(shù)據(jù))分開,并通過配置文件Struts-config.xml提供各自之間的綁定。
控制器是actionservlet,您可以在其中編寫視圖的模板,并且使用ActionForm JavaBean保持用戶數(shù)據(jù)。操作對(duì)象負(fù)責(zé)轉(zhuǎn)發(fā)應(yīng)用程序流程。
該視圖由豐富的標(biāo)記庫維護(hù)。
Struts易于設(shè)置并通過Servlet和JSP單獨(dú)使用傳統(tǒng)的MVC方法提供更大的靈活性和可擴(kuò)展性。這可能是您作為Web開發(fā)人員的職業(yè)生涯的一個(gè)很好的起點(diǎn)。
3.Hibernate
雖然Hibernate不是一個(gè)全堆棧的框架,但它完全改變了我們查看數(shù)據(jù)庫的方式。Java Persistence API(JPA)的實(shí)現(xiàn),Hibernate是Java應(yīng)用程序的對(duì)象關(guān)系映射(ORM)數(shù)據(jù)庫。就像SQL一樣,Hibernate中的查詢稱為HQL(Hibernate查詢語言)。
Hibernate直接將Java類映射到對(duì)應(yīng)的數(shù)據(jù)庫表,反之亦然。
Hibernate中的主文件是hibernate.cfg.xml文件,其中包含有關(guān)映射Java類的信息,其中包含數(shù)據(jù)庫配置。
Hibernate解決了JDBC - JDBC的兩個(gè)主要問題 - JDBC不支持對(duì)象級(jí)關(guān)系,如果您決定遷移到不同的數(shù)據(jù)庫,則舊的查詢可能無法正常工作 - 意味著很多更改 - 即時(shí)間和金錢!
Hibernate提供了一個(gè)抽象層,使得代碼與數(shù)據(jù)庫松散地耦合。諸如建立數(shù)據(jù)庫連接的東西,執(zhí)行CRUD操作是由Hibernate處理的 - 所以開發(fā)人員不需要實(shí)現(xiàn),因此使得代碼獨(dú)立于使用的數(shù)據(jù)庫。
從這些初學(xué)者和高級(jí)課程中選擇一個(gè)或多個(gè),以了解Hibernate和JPA的完整概述。
4. Apache Wicket.

如果您已經(jīng)與JSP合作,則學(xué)習(xí)Wicket將成為Cakewalk。一個(gè)簡單的Java Web框架,Wicket有一個(gè)面向組件的結(jié)構(gòu),您需要知道的只是Java和HTML。絕對(duì)沒有XML或配置文件!
Wicket的主要特點(diǎn)是IT POJO模型,其中組件很簡單(普通舊的)Java對(duì)象具有OOP功能。這些組件作為可重用包作為可重用包,其中包含圖像,按鈕,表單,鏈接,頁面,容器,行為等,以便開發(fā)人員可以自定義它們。
Wicket是輕量調(diào),您可以確保建立應(yīng)用程序。它也很容易在檢票口中編寫的單元測試代碼。
5. JSF(Java Server Faces)
不要將JSF與JSP混淆,這只是可以具有靜態(tài)和動(dòng)態(tài)內(nèi)容的文本文檔。JSF是由Oracle開發(fā)的,作為Java Enterprise Edition 7的一部分。
它是基于組件的MVC框架,并具有基于服務(wù)器的應(yīng)用程序的可重用UI組件。主要思想是封裝各種客戶端技術(shù),如CSS,JavaScript和HTML,它將允許開發(fā)人員在不知道任何深入的任何技術(shù)的情況下創(chuàng)建UI。它們只能拖放UI組件并更多地關(guān)注其演示層細(xì)節(jié)。
JSF中的默認(rèn)模板系統(tǒng)是Facelets。JSF與Struts非常相似。
JSF可以進(jìn)一步無縫地與啟用Ajax的組件集成,以通過為驗(yàn)證和方法調(diào)用添加Ajax事件來豐富用戶體驗(yàn)。
查看此鏈接課程以了解更多有關(guān)JSF的信息。
6.Dropwizard

另一個(gè)Java框架符合其名稱 - 向?qū)?。這種輕量級(jí)框架允許您非??焖俚赝瓿蓱?yīng)用程序,因?yàn)樗菍?duì)高級(jí)配置,日志記錄,應(yīng)用指標(biāo)等的框支持。您可以創(chuàng)建提供高性能的RESTful Web應(yīng)用程序,穩(wěn)定可靠。
DropWizard尤其是神奇的,因?yàn)樗鼌R集了一系列庫,如Jetty,Guava,Jersy,Jackson和java生態(tài)系統(tǒng)中的許多其他人的指標(biāo),并為您提供了輕量級(jí)和精益的應(yīng)用。
由于所有配置,安全性和性能相關(guān)的任務(wù)都有集成的庫,因?yàn)槟枰龅乃信渲?,就像開發(fā)人員建立業(yè)務(wù)邏輯一樣。
DropWizard是一個(gè)與庫捆綁在一起的開源框架,您可以輕松地使用Eclipse IDE設(shè)置并創(chuàng)建一個(gè)簡單的項(xiàng)目來學(xué)習(xí)(相信我,您可以自己學(xué)習(xí)陣列!)。DropWizard網(wǎng)站的基本教程將通過每個(gè)步驟幫助您。
7. Grails.
Grails是一種很容易學(xué)習(xí)的全堆棧框架,適合剛剛開始編程職業(yè)的人。雖然Grails是以Groovy編程語言編寫的Web框架,但它在Java平臺(tái)上運(yùn)行,并且與Java語法完美兼容。該框架基于MVC設(shè)計(jì)模式。
Groovy類似于Java,與Java相比,有一些更多的功能。如果您已經(jīng)知道Java,則非常容易學(xué)習(xí)Groovy。
與JSP類似,在Grails中,渲染技術(shù)是GSP(Groovy Server頁面)。為Grails中的視圖創(chuàng)建標(biāo)記簡單且簡單。它還使用GOM,因?yàn)槟赡芤呀?jīng)猜到是Grails中使用的ORM實(shí)現(xiàn)。您也可以直接使用Hibernate而不是GOM。Grails為RESTful API建立了支持,因此可以輕松創(chuàng)建此類服務(wù)。
以下是最好的部分 - 您可以將現(xiàn)有的Java代碼與Grails集成。如果您的應(yīng)用程序中的Groovy和Java代碼混合 - 它將正常工作!
學(xué)習(xí)Grails的最佳方式是使用像Eclipse,NetBeans等的任何Java IDE設(shè)置自己的開發(fā)環(huán)境……并按照任何這些教程建立您的第一個(gè)Web應(yīng)用程序。
8.ATG
ATG是用Java編寫的Web Commerce平臺(tái)。它是一種可定制和可配置的框架,對(duì)與電子商務(wù)有關(guān)的網(wǎng)站特別有用。該產(chǎn)品由Oracle擁有,并支持復(fù)雜和巨大的B2B和B2C應(yīng)用程序。然而,對(duì)于小規(guī)模應(yīng)用,它可能是昂貴的。如果您正在進(jìn)入開發(fā)電子商務(wù)網(wǎng)站,ATG是一個(gè)很好的學(xué)習(xí)框架,并將豐富您的技術(shù)以及域名知識(shí)。
ATG平臺(tái)可以在三個(gè)服務(wù)器上運(yùn)行 - Oracle WebLogic,IBM WebSphere和JBoss。
框架中有3個(gè)主要層 -
- Dynamo應(yīng)用程序框架 - 它是基于JavaBeans和JSP的開發(fā)環(huán)境提供的基礎(chǔ)層。對(duì)于所有常用功能,都有標(biāo)準(zhǔn)的ATG類,甚至可以通過通過配置文件鏈接來創(chuàng)建和組裝甚至自定義Java代碼。
- 個(gè)性化模塊 - 這是每個(gè)用戶的內(nèi)容是動(dòng)態(tài)定制的。此模塊有助于控制和維護(hù)用戶 - 配置文件和業(yè)務(wù)規(guī)則,該配置文件和業(yè)務(wù)規(guī)則定義要將內(nèi)容顯示到特定用戶的內(nèi)容。此圖層還支持有針對(duì)性的電子郵件。
- 方案模塊 - 此模塊通過引入時(shí)間敏感的事件驅(qū)動(dòng)的廣告系列來增強(qiáng)個(gè)性化模塊的功能,這些活動(dòng)是在一段時(shí)間內(nèi)管理站點(diǎn)訪問者和內(nèi)容之間的交互。例如,有限時(shí)間提供,某些成員的獨(dú)家優(yōu)惠等……
ATG是一個(gè)廣泛的框架,你需要時(shí)間和耐心學(xué)習(xí)它。幾家像沃爾瑪,梅奇,最佳,ASDA等幾家大公司都擁有他們的網(wǎng)站,建于ATG。
9 Play

Play是一種略微傳統(tǒng)和獨(dú)特的框架類型,遵循“慣例”通過配置的方法。它基于MVC模式,是一個(gè)開源Web應(yīng)用程序框架。除了Java,您可以在Scala中編寫播放Web應(yīng)用程序。
播放類似于Django或Ruby在Rails或ASP.NET架構(gòu)上,不一定遵循J2EE Web標(biāo)準(zhǔn)。
Play的一些特征是 -
- 由于異步處理,性能高
- 沒有容器,沒有狀態(tài),建立在反應(yīng)原則上
- 使用靜態(tài)類型的語言,因此大多數(shù)錯(cuò)誤在編譯時(shí)捕獲了在開發(fā)生命周期的早期節(jié)省大量錯(cuò)誤。
- Scala探討了真正的OOP以及一些功能性編程概念。它與Java的兼容性為一個(gè)優(yōu)秀和強(qiáng)大的系統(tǒng)制作。
- 使用Play2,已發(fā)布了一個(gè)新的強(qiáng)大的構(gòu)建系統(tǒng)SBT,這使得與Maven Projects易于集成以及創(chuàng)建簡單JAR文件。
- 廣泛的關(guān)系數(shù)據(jù)庫訪問庫,用于常用功能。
10. Apache Hadoop.

雖然Apache Hadoop不是一個(gè)全堆??蚣埽峁┝艘粋€(gè)軟件框架并在MapReduce編程模型上工作。這些實(shí)用程序可以輕松處理大量數(shù)據(jù)(大數(shù)據(jù)),存儲(chǔ),分析和處理它們,以提供更快,更高效的結(jié)果。
我在這個(gè)列表中包含了Hadoop,因?yàn)樗墙裉斓?ldquo;東西”,具有大數(shù)據(jù)的突出。
Hadoop有助于使用主從設(shè)計(jì)模式的分布式數(shù)據(jù)存儲(chǔ)和處理。主節(jié)點(diǎn)(即NameNode)的Hadoop HDFS(Hadoop分布式文件系統(tǒng))層具有數(shù)據(jù)節(jié)點(diǎn)。MapReduce圖層具有JobTracker和TaskTracker。從節(jié)點(diǎn)分別具有數(shù)據(jù)節(jié)點(diǎn)和TaskTracker。
HDFS將文件劃分為塊集,這些文件在群集中復(fù)制。
如果您想熟悉大數(shù)據(jù)和數(shù)據(jù)科學(xué) - Hadoop就是您開始的地方。通過這些教程輕松學(xué)習(xí)Hadoop。
11. GWT.
Google Web Toolkit(GWT)是一個(gè)明顯創(chuàng)建的框架,由Google創(chuàng)建,在Java中創(chuàng)建豐富的Internet應(yīng)用程序。 GWT的最佳功能之一是它將Java代碼轉(zhuǎn)換為JavaScript代碼 - 基于瀏覽器的超自定義代碼。我個(gè)人喜歡這個(gè)功能,因?yàn)樵陂_發(fā)期間,我們曾經(jīng)在瀏覽器測試中花費(fèi)了大量的時(shí)間和精力。使用此開源組工具集,我們可以在更短的時(shí)間內(nèi)編寫高度性能的Web應(yīng)用程序。如果您已經(jīng)有一個(gè)代碼庫,您可以輕松地將其與GWT集成,因?yàn)镚WT也與Eclipse IDE,Maven和Junit兼容。該框架還提供了廣泛的窗口小部件庫,可以執(zhí)行大多數(shù)任務(wù),使Java中的初學(xué)者甚至是開發(fā)業(yè)務(wù)邏輯,而不擔(dān)心基本的東西。 GWT框架有3個(gè)主要組成部分 - Java到JS編譯器,坐在核心JRE庫頂部的JAVA仿真庫和包括UI組件,歷史管理和更多功能的GWT UI構(gòu)建庫。
在這里開始學(xué)習(xí)GWT。
12. vaadin.
Vaadin是一個(gè)旗艦產(chǎn)品,也是開發(fā)人員可以使用Java進(jìn)行HTML5 Web UI實(shí)現(xiàn)的平臺(tái)。它是一個(gè)開源平臺(tái),包括Java Web框架和一組Web組件以及應(yīng)用程序啟動(dòng)器和工具。這些Web組件形成了Vaadin的核心,可以定制,導(dǎo)致桌面和移動(dòng)應(yīng)用程序的高性能和多功能代碼。
Vaadin Flow是Vaadin平臺(tái)的實(shí)際Java Framework部分,負(fù)責(zé)客戶服務(wù)器通信以及路由。使用Vaadin Flow,您可以完全在Java中完全寫入Web應(yīng)用程序,而無需JS或CSS的FUSS。UI組件使用自動(dòng)通信和瀏覽器和服務(wù)器處理用戶的瀏覽器活動(dòng)。您可以輕松地將Vaadin組件集成到您使用的任何IDE中,只需跨平臺(tái)框架,因此無需擔(dān)心將代碼遷移到其他平臺(tái)中。
構(gòu)建Java應(yīng)用程序是一種全新的方法,以便您可以單獨(dú)專注于演示層,而無需擔(dān)心客戶端 - 服務(wù)器通信。它還具有數(shù)據(jù)綁定API,可使用類型安全的Java代碼和抽象圖層將UI組件映射到數(shù)據(jù)庫,以便使用HTML模板和Java構(gòu)建UI中的可重用組件。
13.Spark
來自Apache的另一個(gè)Masterstroke,Spark是一個(gè)開源的Web開發(fā)框架,它具有與春天,播放和JAX-RS類似的功能,但更強(qiáng)大,并且不遵循傳統(tǒng)的MVC設(shè)計(jì)模式。
它是一個(gè)微框架和一個(gè)特定于域的語言,用于Java專注于開發(fā)速度。它需要非常少的配置和編碼。由于內(nèi)存中的計(jì)算,它在數(shù)據(jù)處理方面比Hadoop快10倍。Spark支持完全動(dòng)態(tài)的框架,支持延遲初始化和實(shí)時(shí)數(shù)據(jù)處理。
它也很容易與Scala和R集成,這是專注于數(shù)據(jù)科學(xué)和大數(shù)據(jù)的編程語言。Spark的主要目標(biāo)是處理大量數(shù)據(jù),并支持使用SQL查詢,機(jī)器學(xué)習(xí)和圖形算法的高級(jí)分析。
不要以為火花可以替換Hadoop - 它可以是Hadoop提供的功能的擴(kuò)展 - 學(xué)習(xí)這兩個(gè)框架如果您進(jìn)入數(shù)據(jù)科學(xué)領(lǐng)域,這兩個(gè)框架將為您提供優(yōu)勢。
14. OpenXava.
一種以快速方式開發(fā)Web應(yīng)用程序的低碼平臺(tái),您可以在記錄時(shí)間內(nèi)啟動(dòng)和運(yùn)行業(yè)務(wù)應(yīng)用程序。它由業(yè)務(wù)組件組成,使建立甚至復(fù)雜應(yīng)用程序簡單,可為開發(fā)人員提供麻煩。OpenXava的可擴(kuò)展,可自定義和OO,使用Java類作為其核心來模擬業(yè)務(wù)問題。這種模型驅(qū)動(dòng)的開發(fā)方法確保封裝。開發(fā)人員僅將模型定義為普通注釋的Java類,并且在運(yùn)行時(shí)都會(huì)生成必要的功能。
OpenXava的結(jié)構(gòu)和哲學(xué)遵循業(yè)務(wù)組件架構(gòu),而不是傳統(tǒng)的MVC架構(gòu)。在這里,一切都是經(jīng)營理念,并且所有貢獻(xiàn)到某個(gè)業(yè)務(wù)概念的偽影都在同一個(gè)位置是相關(guān)的視圖,模型或控制器。
在您了解此框架之前,您肯定應(yīng)該閱讀此語言背后的概念。
15. Vert.x.
由Eclipse開發(fā),Vert.x是一個(gè)事件驅(qū)動(dòng)的應(yīng)用程序框架,它使用了Java,JS,Groovy,Scala等許多語言。因此是本質(zhì)上的多膠。它依賴于異步編程模型,從而使應(yīng)用程序不堵塞并沒有多線程。
vert.x可以說是一個(gè)工具包,提供多種語言的API,以執(zhí)行所有Web應(yīng)用程序所需的異步任務(wù) - 記錄,身份驗(yàn)證,監(jiān)視,DB連接,多集群支持等… Vert中有2個(gè)主要概念。X -
- verticle - 就像任何其他異步模型一樣,存在一個(gè)事件循環(huán),該事件循環(huán)具有消息,網(wǎng)絡(luò)緩沖區(qū),HTTP請求等。來自事件循環(huán)的每個(gè)事件由vertice處理。
- 事件總線 - 不同的頂點(diǎn)使用事件總線互相通信。這是通過異步消息傳遞完成的。事件總線可以執(zhí)行不同類型的消息傳遞,如點(diǎn),廣播和請求 - 響應(yīng)。
關(guān)于Vert.x的最佳方法是其非阻塞性質(zhì),使Web應(yīng)用程序具有高度性能。該框架可用于任何應(yīng)用 - 小,中或大規(guī)模。如果您已經(jīng)知道node.js,則將更多地欣賞vert.x更多,因?yàn)樗哂蠳ode.js的所有功能以及Java虛擬機(jī)的益處,它使得強(qiáng)大且強(qiáng)大的組合。
16.Tapestry

概念上,Tapestry類似于JSF和Wicket。它是一個(gè)開源,跨平臺(tái),基于組件的Web應(yīng)用程序開發(fā)框架,可以創(chuàng)建高度可擴(kuò)展的應(yīng)用程序。構(gòu)建在Rich Java Servlet API上,它適用于任何容器或應(yīng)用程序服務(wù)器。Tapestry是一個(gè)真正面向?qū)ο蟮目蚣埽驗(yàn)槟褂眉僅TML模板或普通Java類(對(duì)象)創(chuàng)建HTML頁面。幾乎沒有必需的XML配置,Tapestry相當(dāng)使用注釋,從而使代碼簡單且易于管理。
使用Tapestry,應(yīng)用程序停機(jī)時(shí)間最小,因?yàn)樯踔量梢詿岵灏尉鶆虻娜魏胃?,而無需重新啟動(dòng)服務(wù)器。Tapestry還負(fù)責(zé)URL構(gòu)建和重定向。與其他框架不同,這里的框架適應(yīng)代碼,而不是反之亦然。
其中一些開箱功能的掛毯是 - 文件上傳,分頁,字段驗(yàn)證,日期和日歷邏輯,內(nèi)化,顯示彈出窗口等……
很容易與春天,休眠等的后端框架集成掛毯代碼,以及測試框架等exenium等框架。
17.Jersey

Jersey是一個(gè)Web服務(wù)框架,可以創(chuàng)建RESTful服務(wù)并支持JAX-RS API。通過有用的功能和實(shí)用功能,它大大簡化了RESTful服務(wù)的開發(fā)。Jersey提供了一種抽象層,以便開發(fā)人員不必?fù)?dān)心客戶端 - 服務(wù)器通信的低級(jí)別實(shí)現(xiàn),并可以專注于主要的Web服務(wù)功能。
與任何其他寧靜的框架相反,Jersey的一個(gè)醒目特征是它允許Chunked輸出即,服務(wù)器可以向零件或塊中的客戶端發(fā)送響應(yīng)。當(dāng)必須發(fā)送大數(shù)據(jù)時(shí),這很有用,并且在準(zhǔn)備整個(gè)響應(yīng)時(shí)可以發(fā)送數(shù)據(jù)塊。
Jersey還可以輕松測試基礎(chǔ)設(shè)施。您可以編寫主要基于JUnit的輕量級(jí)集成測試。與Maven環(huán)境相結(jié)合,還容易集成測試。您需要做的就是添加pom.xml中的依賴項(xiàng)。
18. OSGI
OSGI或Open Service Gateway Initiative定義了基于組件的系統(tǒng)。它是一個(gè)受歡迎的Java框架,其中每個(gè)組件都被稱為捆綁包。每個(gè)捆綁都有一個(gè)獨(dú)立的生命周期,不依賴于其他捆綁包。考慮捆綁包是具有OSGi特定標(biāo)題的JAR文件。捆綁包必須明確聲明他們需要訪問的包,而無需哪個(gè)OSGI平臺(tái)。
捆綁包使用JVM級(jí)服務(wù)注冊表來發(fā)現(xiàn),發(fā)布和綁定捆綁包作為服務(wù)。這是OSGI的本質(zhì) - 對(duì)于模塊化應(yīng)用程序架構(gòu),促進(jìn)適應(yīng)性和快速更改,無需超時(shí)(運(yùn)行時(shí)靈活性)。
OSGI主要是流行的,因?yàn)樗cEclipse和基于Maven的項(xiàng)目輕松集成。
OSGI具有一些好的概念和好處,但由于個(gè)人獨(dú)立的捆綁版本控制可能是一個(gè)問題。這可能是使用此框架在其他框架上的一個(gè)主要缺點(diǎn)。然而,由于模塊化和孤立的課程加載是開發(fā)人員的重要概念,值得投資這一框架中的一些時(shí)間。
19.Drools
Drools是一個(gè)流行的商業(yè)規(guī)則管理系統(tǒng)。它具有業(yè)務(wù)規(guī)則引擎(BRE),創(chuàng)作,規(guī)則管理應(yīng)用程序和運(yùn)行時(shí)支持,用于決策和符號(hào)模型。規(guī)則管理應(yīng)用程序稱為Drools Workbench。該項(xiàng)目由Redhat和Jboss支持。使用Drools,開發(fā)人員可以輕松地將數(shù)據(jù)與業(yè)務(wù)邏輯分開。Drools中的兩個(gè)主要步驟是 -
- 創(chuàng)作 - 創(chuàng)建規(guī)則文件
- 運(yùn)行時(shí) - 您執(zhí)行規(guī)則的位置
Drools最重要的特點(diǎn)是可以隨時(shí)刪除并添加新規(guī)則,而無需重新啟動(dòng)服務(wù)器。
Drools是依賴于某些行動(dòng)的大量條件的應(yīng)用程序的使用權(quán)。例如,要檢查一個(gè)人是否有資格升級(jí)他的計(jì)劃,例如,有一定的設(shè)定規(guī)則 - 例如,客戶現(xiàn)有數(shù)量,客戶的賬單金額大于特定限制等。這些規(guī)則可以定義為決策表而不是在代碼中的硬編碼它們。任何更改都不需要另一種方式構(gòu)建,完整的測試或重新部署!
20. Mybatis.
Apache的自由軟件,MyBatis是Java中的持久框架,其中Java方法映射了SQL語句,與ORM將Java對(duì)象映射到數(shù)據(jù)庫中的表。映射引擎以聲明方式使用XML描述符或注釋將SQL結(jié)果映射到對(duì)象樹中。
在很多方面,Mybatis比JDBC和Hibernate更好。MyBatis可以動(dòng)態(tài)生成將它們與代碼分開的SQL語句。它還提供查詢緩存,便于訪問。API非常簡單,您不必是SQL或數(shù)據(jù)庫中的專家,以便能夠編寫MyBatis代碼。
Mybatis是一個(gè)很好的替代Hibernate和JDBC,當(dāng)您的應(yīng)用程序不太復(fù)雜并且您希望簡單的框中的功能,如數(shù)據(jù)庫連接,事務(wù)管理,加載數(shù)據(jù)庫驅(qū)動(dòng)程序,管理和釋放連接等框架。Mybatis也可以用彈簧框架輕松集成。
21. Apache Mina.

Apache Mina是一個(gè)網(wǎng)絡(luò)應(yīng)用程序框架,開發(fā)人員可以輕松地創(chuàng)建高度可擴(kuò)展和性能的網(wǎng)絡(luò)應(yīng)用程序。無論是使用TCP / IP,UDP,LDAP,NTP,DNS等還是自定義協(xié)議,Mina都有所有傳輸?shù)慕y(tǒng)一API。該框架可以提供高級(jí)和低級(jí)別的網(wǎng)絡(luò)API。Mina完全處理I / O操作,幫助開發(fā)人員充分集中在業(yè)務(wù)邏輯和其他應(yīng)用需求上。很容易測試在模擬對(duì)象的幫助下編寫的代碼。您可以使用Eclipse IDE輕松學(xué)習(xí)MINA。它可以與流行的框架相結(jié)合,如Spring和Picocontainer,使其成為網(wǎng)絡(luò)應(yīng)用的熱門選擇。
Mina比Soap更好,更穩(wěn)定可靠。它有一個(gè)豐富的網(wǎng)絡(luò)庫來處理并發(fā)線程。
從他們的官方頁面上了解有關(guān)Apache Mina的更多信息。
結(jié)論
還有許多其他Java框架不是全堆棧或Web開發(fā)框架,但在每個(gè)應(yīng)用程序中都很有用 - 像Logging,JUnit和Selenium用于測試等等。很重要,雖然您可以在與上面列表中看到的其他框架一起了解它們,但您可以了解這些問題。
您申請的最佳框架應(yīng)滿足您的業(yè)務(wù)需求,提供一定的靈活性和最佳性能,并且易于維護(hù)和吸收變化。
例如,對(duì)于完整的堆棧Web開發(fā)框架,如果需要更改某些東西,它應(yīng)該影響應(yīng)用程序最少,即,您不必再次構(gòu)建和部署應(yīng)用程序以進(jìn)行小型更改。只是一個(gè)配置變化應(yīng)該做魔法。此類應(yīng)用程序節(jié)省停機(jī)時(shí)間并提供靈活性。
明智地選擇Java的框架,享受Java提供的功能。