一、Spring是什麼?
Spring框架是一個開源的Java平臺,作爲一個主流的SSH框架之一,該框架的核心功能可以在任何Java應用程序中使用,也有擴展的Java EE平臺上構建Web應用程序。 Spring框架最重要的兩個內容就是依賴注入(IOC)和麪向切面(AOP)編程。二、使用Spring框架的好處:
a、純java對象。Spring 使開發人員使用POJO來開發企業級應用程序。僅使用POJO的好處是不需要EJB容器產品,如應用服務器,但必須只使用一個強大的servlet容器,如Tomcat 或某些商業產品的選擇。同時,也爲測試提供了某種便捷性,不需要依賴某種框架。
b、整合衆多框架。Spring 被組織在一個模塊化的方式。雖然包和類的數量是巨大的,你只有擔心那些需要的,而其它的就可以忽略了。Spring不重新發明輪子,而是真正利用了一些像一些ORM框架,日誌框架,JEE,Quartz和JDK定時器。同時,Spring web框架是一個設計良好的Web MVC框架,它提供了一個很好的替代Web框架,如Struts或其他過度設計或不太流行的Web框架以及其他視圖技術的現有技術。
c、控制反轉(IoC)和麪向切面(AOP)。通過IoC不再讓對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。而AOP則是針對那些獨立於業務的但是又具有公共性服務的功能進行編程,例如日誌管理,事務管理等。
三、核心:
依賴注入(DI):
Spring框架核心之一就是依賴注入,也做控制反轉(DI)。控制反轉(IoC)是一個籠統的概念,它可以表現在
許多不同的方式。依賴注入僅僅是控制反轉的一個具體的例子。當編寫一個複雜的Java應用程序,應用程序類應該盡
可能獨立其他Java類來增加重複使用這些類,並獨立於其他類別的測試它們,而這樣做單元測試的可能性。依賴注入
有助於粘合這些類在一起,同時保持他們的獨立。
Spring提供了三種注入方式:接口注入,set注入,構造注入。
面向切面編程(AOP):
Spring的一個關鍵內容就是面向切面編程(AOP)。跨越多個點的應用程序的功能被稱爲橫切關注點和這些橫切
關注點是從應用程序的業務邏輯概念上區分開來。有方面的各種常見很好的例子包括日誌記錄,聲明性事務,安全性
和高速緩存等。
模塊化的OOP關鍵單元是類,而在AOP中模塊化的單元則是切面。DI幫助您從彼此分離的應用程序對象,AOP可以
幫助你消除來自他們影響的對象橫切關注點。Spring框架AOP模塊提供了面向方面編程實現,允許您定義方法攔截器和切入點,使得開發更高效快捷。
PS:對於Spring的控制反轉和麪向切面編程,這裏先大致瞭解一下,後面的內容詳細介紹。
言而總之,Spring作爲一個輕量級,非侵入性框架,通過依賴注入和麪向切面編程兩大核心爲項目應對變化,可擴展,代碼複用等提供了可能。