Spring框架
Spring框架組件是一個流行的,但是非標準的開放原始碼框架組件。它主要是由Interface21 Inc.公司開發和控制的。Spring框架組件的架構是基於依賴注入(DI)設計模式的。Spring可以單獨地或者與現有的應用程式伺服器一起工作,它大量地使用XML配置檔案。
EJB 3.0框架
EJB 3.0框架組件是一個標準的框架組件,由Java社區組織(JCP)定義,並受到所有主流的J2EE廠商支持。預發布的EJB 3.0規範的開放原始碼和商業實現都可以在JBoss和Oracle上看到了。EJB 3.0大量使用Java注釋(annotation)。
描述
這兩個框架組件的核心設計理念是相同的:兩者的目標都是把中間件服務傳遞給鬆散耦合的簡單舊式Java對象(POJO)。這些框架組件通過在運行時截取執行內容或向POJO注入服務對象,把應用程式服務與POJO捆綁在一起。POJO本身不關心捆綁的過程,並且對框架組件幾乎沒有依賴。其結果是,開發者可以聚焦於業務邏輯,個人可以在沒有框架組件的情況下測試他們的POJO。此外,由於POJO不需要從框架組件中繼承或實現框架組件接口,開發者建立繼承結構和構建應用程式的時候都有高度的靈活性。
但是,儘管兩者的設計理念是相同的,它們傳遞POJO服務時卻採用了完全不同的方法。儘管目前已經出版了大量的圖書和文章來把Spring或EJB 3.0與EJB 2.1進行對比,但是它們都沒有對Spring與EJB 3.0之間的差異進行認真的研究。在本文中,我將研究Spring和EJB 3.0框架組件之間的關鍵差異,並討論它們的優缺點。本文的主題也可以套用在其它一些名氣稍小的企業級中間件框架組件上,因為它們都聚焦於"鬆散耦合的POJO"設計。我希望本文能夠幫助你選擇符合需求的最佳的框架組件。