web前端模块化开发_真正的模块化Web应用程序:为什么没有开发标准?
web前端模塊化開(kāi)發(fā)
OSGI , SpringSource , Jboss模塊 ,J2EE和清單永遠(yuǎn)不會(huì)結(jié)束。所有這些技術(shù)都向他們的最終用戶(hù)/開(kāi)發(fā)人員保證了相同的東西,或多或少是Java模塊化Web應(yīng)用程序(?)。 但是,我們當(dāng)中有多少人實(shí)際上已經(jīng)嘗試過(guò)用Java開(kāi)發(fā)REAL模塊化軟件系統(tǒng)? 我們當(dāng)中有多少人成功完成了任務(wù)? 您可能已經(jīng)注意到,我已經(jīng)將單詞real改為大寫(xiě),但這并非偶然。 我將簡(jiǎn)要解釋我的定義是什么:“真正的模塊化Java系統(tǒng)”。恕我直言,REAL軟件模塊至少應(yīng)具有用于業(yè)務(wù)邏輯,持久性,用戶(hù)界面和配置的部分。 在理想情況下,軟件模塊應(yīng)該能夠在運(yùn)行的應(yīng)用程序中輕松插入和拔出,而無(wú)需重新啟動(dòng)它。 例如,在J2EE應(yīng)用程序服務(wù)器(例如Jboss或GlassFish)中,正在運(yùn)行的應(yīng)用程序(核心系統(tǒng))是.war文件。 開(kāi)發(fā)了核心系統(tǒng)的其他一些模塊(包含上述部分),并將其打包在單獨(dú)的jar文件中。 這些jar文件應(yīng)該部署在應(yīng)用服務(wù)器中,并與核心系統(tǒng)集成(通過(guò)業(yè)務(wù)邏輯和用戶(hù)界面中的某些擴(kuò)展點(diǎn)),而無(wú)需重新部署它。 我們可以做這樣的事情嗎?
讓我們看看相關(guān)技術(shù)對(duì)此有何建議。 自從JBoss Modules邁出第一步以來(lái),我一直是它的忠實(shí)擁護(hù)者。在最近發(fā)布的JBoss AS之后,我希望看到它們的實(shí)際應(yīng)用。 說(shuō)實(shí)話(huà),JBoss模塊提供了一種非常簡(jiǎn)單方便的方法來(lái)定義模塊之間的依賴(lài)關(guān)系。 糟糕! 我寫(xiě)了“模塊”嗎? 這些是什么樣的模塊? 它們可以包括業(yè)務(wù)邏輯,配置,數(shù)據(jù)模型,但是用戶(hù)界面呢? 不幸的是,沒(méi)有任何提及,經(jīng)過(guò)一番研究,我發(fā)現(xiàn)JBoss模塊中的模塊化概念不包含任何用戶(hù)界面。
OSGI呢? 構(gòu)建模塊化應(yīng)用程序的最有前途的方式。 如今, OSGI已獲得許多應(yīng)用程序服務(wù)器的支持,盡管其配置看起來(lái)像是工業(yè)革命時(shí)代的恐龍,但它似乎是一種非常不錯(cuò)的方法。 大量可用的服務(wù),要使用的許多框架,當(dāng)然也沒(méi)有涉及任何用戶(hù)界面功能。 另一方面,正如相關(guān)文章所暗示的, Vaadin與OSGI很好地集成(?)以構(gòu)建模塊化的Web應(yīng)用程序。 我想知道是否有使用OSGI和Vaadin開(kāi)發(fā)的真實(shí)/高效的模塊化企業(yè)應(yīng)用程序。
Spring是SpringSource的獨(dú)立框架, SpringSource目前是開(kāi)發(fā)Java企業(yè)應(yīng)用程序的領(lǐng)導(dǎo)者。 與OSGI結(jié)合使用的Spring動(dòng)態(tài)模塊被認(rèn)為是構(gòu)建動(dòng)態(tài)和模塊化Web應(yīng)用程序的最復(fù)雜的方法,但是我仍然感到,即使Spring也無(wú)法解決我提出的問(wèn)題。 根據(jù)我的研究經(jīng)驗(yàn),將上述技術(shù)集成到模塊化系統(tǒng)中是一項(xiàng)艱巨的任務(wù)。
最后但并非最不重要的是J2EE。 Web的最新版本和完整的配置文件規(guī)范已將J2EE轉(zhuǎn)換為非常強(qiáng)大的框架集。 JSF2和CDI以及所有新功能極大地提高了它在Java開(kāi)發(fā)人員中的知名度。 當(dāng)我第一次閱讀本文時(shí) ,我相信最終我找到了模塊化Web應(yīng)用程序的標(biāo)準(zhǔn)解決方案。 盡管每個(gè)jar可以包含所有不同的部分:根據(jù)EJB和CDI的業(yè)務(wù)邏輯,對(duì)JPA及其實(shí)現(xiàn)的持久性,對(duì)JSF及其實(shí)現(xiàn)的配置和用戶(hù)界面),根據(jù)此問(wèn)題 ,無(wú)法將具有JSF組件的jar作為單獨(dú)的組件來(lái)處理模塊。 再一次失望。 J2EE中的模塊應(yīng)該是在一次大戰(zhàn)中打包的jar。 太近了!! 我猜,我們必須等到JSF 2.2的發(fā)布以及幾個(gè)月后才能獲得最知名的應(yīng)用程序服務(wù)器的支持。
由于沒(méi)有用于構(gòu)建模塊化系統(tǒng)的標(biāo)準(zhǔn),因此許多知名項(xiàng)目都基于上述框架之一或從頭開(kāi)始開(kāi)發(fā)了自己的模塊系統(tǒng)。 SonarSource的Jenkins , Atlassian的Jira和Sonar都是基于Java的應(yīng)用程序,具有強(qiáng)大的模塊/插件系統(tǒng)。 您按照一些準(zhǔn)則開(kāi)發(fā)插件(包括用戶(hù)界面),然后通過(guò)模塊/插件管理器將其部署為單個(gè)jar。 在大多數(shù)情況下,您需要重新啟動(dòng)系統(tǒng),但是我認(rèn)為這不會(huì)打擾任何管理員,因?yàn)槟梢暂p松地增加軟件的功能。
所以我的困境仍然有效。 我應(yīng)該開(kāi)始構(gòu)建自己的模塊/插件系統(tǒng)還是應(yīng)該等待標(biāo)準(zhǔn)出臺(tái)并促進(jìn)全球模塊化Web應(yīng)用程序的開(kāi)發(fā)? 我不知道為什么這種標(biāo)準(zhǔn)化尚不可用,為什么我們必須在所有這些技術(shù)和框架中最終嘗試(仍然沒(méi)有資源)嘗試! 我們是否接近開(kāi)發(fā)真正的模塊化企業(yè)Web應(yīng)用程序的標(biāo)準(zhǔn)?
參考: 為什么沒(méi)有用于開(kāi)發(fā)真正的模塊化Web應(yīng)用程序的標(biāo)準(zhǔn)? 從我們的JCG合作伙伴 Patroklos Papapetrou在Only Software Matters博客上獲得 。
相關(guān)文章 :
- OSGi將Maven與Equinox結(jié)合使用
- Tomcat中的零停機(jī)部署(和回滾); 演練和清單
- Java Code Geeks Andygene Web原型
- Java最佳實(shí)踐系列
- Java教程和Android教程列表
翻譯自: https://www.javacodegeeks.com/2011/09/real-modular-web-applications-why-there.html
web前端模塊化開(kāi)發(fā)
總結(jié)
以上是生活随笔為你收集整理的web前端模块化开发_真正的模块化Web应用程序:为什么没有开发标准?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 自动加密可序列化的类
- 下一篇: 京东向华为求货冲上热搜 官方已经慌了 但