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

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

如果您已經(jīng)與JSP合作,則學(xué)習(xí)Wicket將成為Cakewalk。一個簡單的Java Web框架,Wicket有一個面向組件的結(jié)構(gòu),您需要知道的只是Java和HTML。絕對沒有XML或配置文件!
Wicket的主要特點是IT POJO模型,其中組件很簡單(普通舊的)Java對象具有OOP功能。這些組件作為可重用包作為可重用包,其中包含圖像,按鈕,表單,鏈接,頁面,容器,行為等,以便開發(fā)人員可以自定義它們。
Wicket是輕量調(diào),您可以確保建立應(yīng)用程序。它也很容易在檢票口中編寫的單元測試代碼。
5. JSF(Java Server Faces)
不要將JSF與JSP混淆,這只是可以具有靜態(tài)和動態(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)注其演示層細節(jié)。
JSF中的默認模板系統(tǒng)是Facelets。JSF與Struts非常相似。
JSF可以進一步無縫地與啟用Ajax的組件集成,以通過為驗證和方法調(diào)用添加Ajax事件來豐富用戶體驗。
查看此鏈接課程以了解更多有關(guān)JSF的信息。
6.Dropwizard

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

Play是一種略微傳統(tǒng)和獨特的框架類型,遵循“慣例”通過配置的方法。它基于MVC模式,是一個開源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ù)錯誤在編譯時捕獲了在開發(fā)生命周期的早期節(jié)省大量錯誤。
- Scala探討了真正的OOP以及一些功能性編程概念。它與Java的兼容性為一個優(yōu)秀和強大的系統(tǒng)制作。
- 使用Play2,已發(fā)布了一個新的強大的構(gòu)建系統(tǒng)SBT,這使得與Maven Projects易于集成以及創(chuàng)建簡單JAR文件。
- 廣泛的關(guān)系數(shù)據(jù)庫訪問庫,用于常用功能。
10. Apache Hadoop.

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

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

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

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