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ā)人員能夠在沒有手動開銷的情況下從頭開始創(chuàng)建每行代碼的手動。Java框架特定于Java編程語言,用作開發(fā)軟件應(yīng)用程序的平臺,Java程序.java框架可以包括用于處理,輸入和管理硬件設(shè)備的預(yù)定義類和功能,以及與系統(tǒng)軟件進(jìn)行交互。這取決于框架的類型,程序員的技能水平,他們試圖完成的東西,以及他們的喜好。
為什么要用框架?
框架為您的應(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個(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框架,您可以找到很多文檔和活動社區(qū)。
通過配置的所有內(nèi)容,您的代碼將是干凈且易于理解的。
主要概念:
- 依賴注入(DI)(控制的反轉(zhuǎn)) - 在此原則上,而不是依次控制流量的應(yīng)用程序,它使控制到驅(qū)動流量的外部控制器。外部控制器是事件。當(dāng)有些事件發(fā)生時(shí),申請流程繼續(xù)。這為應(yīng)用提供了靈活性。在春天,IOC由DI完成,其中三種類型 - Setter注入,方法噴射和構(gòu)造儀注入。
- Bean和Spring上下文 - 在春Spring,對象稱為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
雖然Hibernate不是一個(gè)全堆棧的框架,但它完全改變了我們查看數(shù)據(jù)庫的方式。Java Persistence API(JPA)的實(shí)現(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的兩個(gè)主要問題 - JDBC不支持對象級關(guān)系,如果您決定遷移到不同的數(shù)據(jù)庫,則舊的查詢可能無法正常工作 - 意味著很多更改 - 即時(shí)間和金錢!
Hibernate提供了一個(gè)抽象層,使得代碼與數(shù)據(jù)庫松散地耦合。諸如建立數(shù)據(jù)庫連接的東西,執(zhí)行CRUD操作是由Hibernate處理的 - 所以開發(fā)人員不需要實(shí)現(xiàn),因此使得代碼獨(dú)立于使用的數(shù)據(jù)庫。
從這些初學(xué)者和高級課程中選擇一個(gè)或多個(gè),以了解Hibernate和JPA的完整概述。
4. Apache Wicket.

如果您已經(jīng)與JSP合作,則學(xué)習(xí)Wicket將成為Cakewalk。一個(gè)簡單的Java Web框架,Wicket有一個(gè)面向組件的結(jié)構(gòu),您需要知道的只是Java和HTML。絕對沒有XML或配置文件!
Wicket的主要特點(diǎn)是IT POJO模型,其中組件很簡單(普通舊的)Java對象具有OOP功能。這些組件作為可重用包作為可重用包,其中包含圖像,按鈕,表單,鏈接,頁面,容器,行為等,以便開發(fā)人員可以自定義它們。
Wicket是輕量調(diào),您可以確保建立應(yīng)用程序。它也很容易在檢票口中編寫的單元測試代碼。
5. JSF(Java Server Faces)
另一個(gè)Java框架符合其名稱 - 向?qū)А_@種輕量級框架允許您非常快速地完成應(yīng)用程序,因?yàn)樗菍Ω呒壟渲茫罩居涗洠瑧?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),并為您提供了輕量級和精益的應(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.
ATG是用Java編寫的Web Commerce平臺。它是一種可定制和可配置的框架,對與電子商務(wù)有關(guān)的網(wǎng)站特別有用。該產(chǎn)品由Oracle擁有,并支持復(fù)雜和巨大的B2B和B2C應(yīng)用程序。然而,對于小規(guī)模應(yīng)用,它可能是昂貴的。如果您正在進(jìn)入開發(fā)電子商務(wù)網(wǎng)站,ATG是一個(gè)很好的學(xué)習(xí)框架,并將豐富您的技術(shù)以及域名知識。
ATG平臺可以在三個(gè)服務(wù)器上運(yùn)行 - Oracle WebLogic,IBM WebSphere和JBoss。
框架中有3個(gè)主要層 -
- Dynamo應(yīng)用程序框架 - 它是基于JavaBeans和JSP的開發(fā)環(huán)境提供的基礎(chǔ)層。對于所有常用功能,都有標(biāo)準(zhǔn)的ATG類,甚至可以通過通過配置文件鏈接來創(chuàng)建和組裝甚至自定義Java代碼。
- 個(gè)性化模塊 - 這是每個(gè)用戶的內(nèi)容是動態(tài)定制的。此模塊有助于控制和維護(hù)用戶 - 配置文件和業(yè)務(wù)規(guī)則,該配置文件和業(yè)務(wù)規(guī)則定義要將內(nèi)容顯示到特定用戶的內(nèi)容。此圖層還支持有針對性的電子郵件。
- 方案模塊 - 此模塊通過引入時(shí)間敏感的事件驅(qū)動的廣告系列來增強(qiáng)個(gè)性化模塊的功能,這些活動是在一段時(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ù)),存儲,分析和處理它們,以提供更快,更高效的結(jié)果。
我在這個(gè)列表中包含了Hadoop,因?yàn)樗墙裉斓?ldquo;東西”,具有大數(shù)據(jù)的突出。
Hadoop有助于使用主從設(shè)計(jì)模式的分布式數(shù)據(jù)存儲和處理。主節(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.
Vaadin是一個(gè)旗艦產(chǎn)品,也是開發(fā)人員可以使用Java進(jìn)行HTML5 Web UI實(shí)現(xiàn)的平臺。它是一個(gè)開源平臺,包括Java Web框架和一組Web組件以及應(yīng)用程序啟動器和工具。這些Web組件形成了Vaadin的核心,可以定制,導(dǎo)致桌面和移動應(yīng)用程序的高性能和多功能代碼。
Vaadin Flow是Vaadin平臺的實(shí)際Java Framework部分,負(fù)責(zé)客戶服務(wù)器通信以及路由。使用Vaadin Flow,您可以完全在Java中完全寫入Web應(yīng)用程序,而無需JS或CSS的FUSS。UI組件使用自動通信和瀏覽器和服務(wù)器處理用戶的瀏覽器活動。您可以輕松地將Vaadin組件集成到您使用的任何IDE中,只需跨平臺框架,因此無需擔(dān)心將代碼遷移到其他平臺中。
構(gòu)建Java應(yīng)用程序是一種全新的方法,以便您可以單獨(dú)專注于演示層,而無需擔(dān)心客戶端 - 服務(wù)器通信。它還具有數(shù)據(jù)綁定API,可使用類型安全的Java代碼和抽象圖層將UI組件映射到數(shù)據(jù)庫,以便使用HTML模板和Java構(gòu)建UI中的可重用組件。
13.Spark
一種以快速方式開發(fā)Web應(yīng)用程序的低碼平臺,您可以在記錄時(shí)間內(nèi)啟動和運(yùn)行業(yè)務(wù)應(yīng)用程序。它由業(yè)務(wù)組件組成,使建立甚至復(fù)雜應(yīng)用程序簡單,可為開發(fā)人員提供麻煩。OpenXava的可擴(kuò)展,可自定義和OO,使用Java類作為其核心來模擬業(yè)務(wù)問題。這種模型驅(qū)動的開發(fā)方法確保封裝。開發(fā)人員僅將模型定義為普通注釋的Java類,并且在運(yùn)行時(shí)都會生成必要的功能。
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.

概念上,Tapestry類似于JSF和Wicket。它是一個(gè)開源,跨平臺,基于組件的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類(對象)創(chuàng)建HTML頁面。幾乎沒有必需的XML配置,Tapestry相當(dāng)使用注釋,從而使代碼簡單且易于管理。
使用Tapestry,應(yīng)用程序停機(jī)時(shí)間最小,因?yàn)樯踔量梢詿岵灏尉鶆虻娜魏胃模鵁o需重新啟動服務(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ù)器通信的低級別實(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的輕量級集成測試。與Maven環(huán)境相結(jié)合,還容易集成測試。您需要做的就是添加pom.xml中的依賴項(xiàng)。
18. OSGI.
Drools是一個(gè)流行的商業(yè)規(guī)則管理系統(tǒng)。它具有業(yè)務(wù)規(guī)則引擎(BRE),創(chuàng)作,規(guī)則管理應(yīng)用程序和運(yùn)行時(shí)支持,用于決策和符號模型。規(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ī)則,而無需重新啟動服務(wù)器。
Drools是依賴于某些行動的大量條件的應(yīng)用程序的使用權(quán)。例如,要檢查一個(gè)人是否有資格升級他的計(jì)劃,例如,有一定的設(shè)定規(guī)則 - 例如,客戶現(xiàn)有數(shù)量,客戶的賬單金額大于特定限制等。這些規(guī)則可以定義為決策表而不是在代碼中的硬編碼它們。任何更改都不需要另一種方式構(gòu)建,完整的測試或重新部署!
20. Mybatis.

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。該框架可以提供高級和低級別的網(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)定可靠。它有一個(gè)豐富的網(wǎng)絡(luò)庫來處理并發(fā)線程。
從他們的官方頁面上了解有關(guān)Apache Mina的更多信息。
結(jié)論
還有許多其他Java框架不是全堆棧或Web開發(fā)框架,但在每個(gè)應(yīng)用程序中都很有用 - 像Logging,JUnit和Selenium用于測試等等。很重要,雖然您可以在與上面列表中看到的其他框架一起了解它們,但您可以了解這些問題。
您申請的最佳框架應(yīng)滿足您的業(yè)務(wù)需求,提供一定的靈活性和最佳性能,并且易于維護(hù)和吸收變化。
例如,對于完整的堆棧Web開發(fā)框架,如果需要更改某些東西,它應(yīng)該影響應(yīng)用程序最少,即,您不必再次構(gòu)建和部署應(yīng)用程序以進(jìn)行小型更改。只是一個(gè)配置變化應(yīng)該做魔法。此類應(yīng)用程序節(jié)省停機(jī)時(shí)間并提供靈活性。
明智地選擇Java的框架,享受Java提供的功能。
原文地址:https://www.toutiao.com/i6937116482887303688/