自從這篇文章的第一版在2003 年10 月發表以來,Spring 框架正在逐步普及。經歷了1.0最終版到現在的1.2版,而且被運用于很多行業和項目中。在這篇文章中,我會解釋Spring為什么會獲得成功,并告訴你我十分肯定它能幫助你開發J2EE應用程序。
又是一個框架?
你可能正在想“不過是另一個的框架”。如今有這么多J2EE 框架,并且你可以建立你自己的框架,為什么你應該讀這篇文章或者下載Spring框架(或者你還沒有下載)?社區中持續的高關注度暗示了Spring一定有它的價值;這也有很多技術原因。
以下的幾個原因讓我相信Spring是獨一無二的:
它關注于很多其它框架沒有關注的地方。Spring 著重于提供一種管理你業務對象的方法。
Spring是全面的、模塊化的。Spring采用分層架構,這意味著你可以僅選擇其中任何一個獨立的部分,而它的架構是內部一致的。因此你能從學習中獲得最大的價值。例如,
你可以僅用Spring 來簡化你的JDBC 使用,或者你可以選擇使用Spring 來管理你的業務對象。把Spring增量地引入現有的項目中是十分容易的。
Spring從設計之初就是要幫助你寫出易于測試的代碼。Spring是測試驅動項目的一個理想框架。
Spring是一個日益重要的集成技術,它的角色已得到一些大廠商的認可。
Spring不需要你的項目再依賴于另一個框架。Spring也許能稱得上是一個“一站式”商店,提供了大多數傳統應用所需要的基礎結構。它還提供了別的框架沒有涉及到的東西。
作為一個從2003 年2 月開始的開源項目,Spring 有深厚的歷史背景。這個開源項目源自我在2002年底出版的《Expert One-on-One J2EE Design and Development》中的基礎代碼。書中展現了Spring背后的基礎性架構思考。然而,這個架構概念可以追溯到2000 年早期,并反映了我在一系列成功的商業項目的基礎結構的開發中所獲得的經驗。
從2003 年1 月起,Spring 落戶于SourceForge,F在有20 位開發者,一些主要人員把所有的時間都花在了Spring 的開發和支持上。繁榮的開源社區幫助它茁壯成長,這遠非任何個人所及。
Spring架構上的好處
在繼續深入前,讓我們來看看Spring帶給一個項目的好處:
Spring可以有效組織你的中間層對象,無論你是否選擇使用EJB。Spring關心那些當你只選擇Struts 或其他為J2EE API 量身定做的框架時被留給你解決的問題。Spring 的配
置管理服務可以被運用于任何運行環境的各種架構性分層中,這也許是中間層中最有價值的。
Spring可以消除在很多項目中所常見的單例的過度使用。在我看來,它的主要問題是降低了可測試性和面向對象的程序。
Spring通過一種在應用程序和項目之間一致的方法來處理配置,這消除了需要自定義配置文件格式的煩惱。還記為了知道某個類要找哪個神奇的屬性項或系統屬性而不得不去讀Javadoc,甚至讀源代碼嗎?有了Spring你只要簡單地看看類的JavaBean屬性或構造參數?刂品崔D和依賴注入(將在下文討論)的使用幫助實現了這一簡化。
Spring通過把針對接口而非類編碼的代價降低到幾乎未零來幫助養成好的編碼習慣。
Spring被設計為讓構建在它之上的應用程序盡可能少地依賴于它的API。大多數Spring應用程序中的業務對象不依賴于Spring。
構建于Spring之上的應用程序很容易進行單元測試。
Spring 使得是否使用EJB 成為實現時的選擇,而非架構上的決定。你能在不改變調用代碼的情況下選擇用POJO 或EJB來實現業務接口。
Spring幫助你在不用EJB的情況下解決很多問題。Spring能提供一種適用于很多應用程 序的EJB的替代品。例如,Spring可以無需EJB容器,用AOP來提供聲明性事務管理;如果你僅與一個數據庫打交道,甚至可以沒有JTA 實現。
Spring 為數據訪問提供了一個一致的框架,無論使用JDBC還是像TopLink、Hibernate 或者JDO實現這樣的實體關系映射產品。
Spring為很多方面提供了一種一致的簡單的編程模型,這使得它成為了一種理想的架構“膠”。你可以從Spring訪問JDBC、JMS、JavaMail、JNDI和很多其他重要API的途徑中發現這種一致性。
Spring是一種幫助你使用POJO 來構建應用程序的基礎技術。要達到這個目標需要一個能將復雜性隱藏起來的成熟的框架。
因此Spring 真的可以幫助你實現針對你的問題的最簡單可行的解決方案。這是十分有價值的。
文章來源于領測軟件測試網 http://www.kjueaiud.com/