为什么在2012/2013年我将在新的Enterprise Java项目中继续使用Spring *和* Java EE
幾年后,由于向下兼容性要求,任何框架都將承擔一些固定費用。 由于這些原因,本博客將不是有關Spring和Java EE的內容和原因的技術文章。 首先,我認為整個問題歸結為您要在其中放置用作開發API的框架庫以編寫業務應用程序的問題:在服務器庫目錄中,或在WEB-WAR / EAR文件中INF / lib。
| 圖2:Spring和Java EE應用程序的簡化開發架構 |
Spring和“純” Java EE應用程序之間最大的相關差異在于,Spring應用程序中的開發框架API是部署到任意Java運行時的Java應用程序(WAR或EAR文件)的一部分。 相反,純Java EE應用程序僅包含業務代碼,并且應用程序框架是應用程序服務器的一部分。 因此,業務應用程序直接在應用程序服務器API上工作。 除了這些純粹的方案外,當今的大多數Java企業應用程序還使用Java EE和Spring API的混合。 幾乎可以在任何不同的主題(Web服務,IoC容器,GUI等)中做出Java EE *或* Spring決策。
還有針對Java EE和Spring應用程序的純運行時環境:兼容Java EE的服務器(Redhat JBoss,IBM WebSphere,Oracle WebLogic)和VMWare的vFabric tc Server。 因此,在一個綠色領域,人們可以選擇純Java EE應用程序體系結構而不是純Spring應用程序體系結構。 但是,如前所述,大多數應用程序都是混合運行的。 我尚未進行過評估,但是我懷疑許多應用程序在帶有Spring IoC容器的Java EE或Tomcat服務器環境中運行。 與其使用* only * Java EE或完整的Spring堆棧,不如使用成熟的Java EE和Spring API的均衡組合來實現。
Java EE的優勢是各方在書面過程中建立的開放標準。 因此,盡管許多項目僅使用少量的Java EE API,但為此平臺構建應用程序卻非常受歡迎。 需要注意的另一個重要事實是,每個(明智的)Java打包軟件供應商都支持主要的Java EE平臺。 因此,許多大型企業無論如何都在內部托管Java EE服務器。 到那時,就可以在Java EE服務器上運行Spring應用程序了。 這種設置可以為生產中有數十甚至數百個Java應用程序的企業提供好處。
1 –遷移JEE服務器要容易得多,因為應用程序*直接*使用更少的服務器API。
2 –為了減少遷移成本,大多數內部客戶將決定將其業務應用程序遷移到當前服務器版本。
3 – IT環境中的服務器數量減少了,生產中Java版本的數量減少了,本地開發環境的數量也減少了,更簡單的ALM解決方案–總而言之:可管理的復雜性和更統一的環境。 4 –快速響應新的客戶端需求:如果您需要新的(Spring)功能,則只需編譯新版本的WAR / EAR文件,然后將其部署到任意Java運行時。 5 –與Java EE完整堆棧相比,潛在目標運行時環境的范圍將更大。 這意味著您可能獨立于“更多”平臺。 6 –使用Spring,您可以在應用程序或服務器環境中增加較小的功能(避免:滾雪球效應)。 7 –與Java EE相比,完整的創新周期更快(從功能請求到生產中的使用)。 8 –根據實際的實際客戶項目要求對Spring進行了增強,以確保其實際適用性。 9 –應用程序開發團隊對應用程序開發堆棧負責,并可以靈活地決定哪種API可以滿足客戶的需求。
在純Java EE開發堆棧中很難實現所有這些好處(其中一些解決了Java EE中的概念性問題)。 一種可能的選擇是模塊化JEE應用服務器體系結構。 像Java SE中一樣,模塊化是標準。 考慮發布過程(即JCP)也可能是有效的。
就像我之前說的,我確實相信從來沒有像現在這樣反對JEE,因為這兩個選項在很多情況下都可以和諧地協同工作。 今天,仍然可以同時使用Spring和Java EE,就像我在其他博客文章中所解釋的那樣。 我相信過去的重要討論更多地是針對我們的業務應用程序的編程模型:CDI與Spring IoC以及JSF與Spring MVC。 辯論通常也是關于是否喜歡“ EJB”的情感辯論(出于歷史原因)。 此外,您的業務應用程序與基礎平臺(服務器,操作系統,硬件)的“真實”獨立性有很多。 例如:我們使用EJB作為集成技術,但是業務應用程序對此一無所知。 平臺獨立性的關鍵不是使用Java EE還是使用Spring,而是:合理地決定在業務應用程序編程模型中直接使用哪些API。 有時最好不要使用一些application-server-lib-directory派生的目錄。
參考:為什么我會在2012/2013年繼續通過我們的JCG合作伙伴 Niklas在新的Enterprise Java項目中使用Spring *和* Java EE。
翻譯自: https://www.javacodegeeks.com/2012/05/why-i-will-continue-to-use-spring-and.html
總結
以上是生活随笔為你收集整理的为什么在2012/2013年我将在新的Enterprise Java项目中继续使用Spring *和* Java EE的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 创建文件linux命令(创建文件linu
- 下一篇: 最强安卓模拟器手机版(最强安卓模拟器)