2009-06-13
認識Spring
Spring的核心是輕量級的容器,是實現控制反轉和非侵入性的架構,並提供AOP概念的實現方式;提供對持久層,事務的支援;提供webMVC架構的實現並對於企業常用的API提供一致的模型封裝,是一個全方位的應用程式架構,除此之外,對於現存的各種架構(Struts,JSF,Hibernate等),Spring也提供了與他們整合的方案。
相對於一些重量級容器,Spring的核心包的容量只有不到1MB的大小,使用Spring的核心包所需要的資源也是很少的。
簡單的說,如果使用Spring,應用程式中的某些組件可以直接重用於另一個應用程式之中了。
容器可以管理對象的產生,資源取得,銷毀等生命週期。Spring提供容器功能,你可以使用一個設定檔,通常是XML檔案,在當中確定對象名稱,去定如何產生對象,設定對象的屬性。在啟動容器後,所有的對象可以直接使用,不用編寫代碼來產生對象。
Spring的核心概念是控制反轉,即IOC。他使得“程式不依賴於實現,而依賴於抽象的介面”,Spring對於控制反轉的實現採用的是依賴注入(DI),它保留抽象的介面,讓組件依賴於抽象的介面,當組件於其他實際的對象發生依賴關係的時候,由抽象介面來注入實際的對象。個人感覺Spring對於控制反轉的實現實際上採用的就是java的反射機制。
AOP是Spring的重要功能,他的作用就是將一些服務獨立於應用程式之外,在必要的時候可以介入應用程式之中提供服務,而在不需要相關服務的時候,可以將他們直接與應用程式脫離,而他的實現就採用的類似設計模式裡面的代理模式。
Spring提供了對於持久層的整合,如對JDBC的使用加以封裝和簡化,對於Hibernate的整合以及使用上的簡化。
Spring也提供Web MVC架構的解決方案,使用Spring架構的好處就是利用其本身的IOC和AOP來輕鬆的替換使用不同的View層技術。
對於一些服務,如JNDI,Mail,Spring不提供實現,而是將這些服務進行封裝,讓這些服務有一致的模型,使用上進行簡化。