認識Spring框架

一、spring簡化Java開發

爲了降低Java開發的複雜性,spring框架採取了四種關鍵策略

(1)基於POJO的輕量級和最小侵入性編程

注:spring竭力避免因自身的API而弄亂你的應用代碼。spring不會強迫你實現spring規範的接口或繼承spring規範的類,相反,在基於spring構建的應用中,它的類通常沒有任何痕跡表明你使用了spring。最壞的場景是,一個類或許會使用spring註解,但它依舊是POJO。

(2)通過依賴注入和麪向接口實現松耦合

注:依賴注入(Dependency Injection,DI)通過DI,對象的依賴關係將由系統中負責協調各對象的第三方組件在創建對象的時候進行設定。對象無需自行創建或管理它們的依賴關係,依賴關係被自動注入到需要他們的對象中去。兩種配置方式,一種是基於XML的配置,一種是基於Java的配置。

(3)基於切面和慣例進行聲明式編程

注:面向切面(aspect-oriented programming AOP)AOP能夠使諸如日誌模塊、安全模塊、事物模塊這些服務模塊化,並以聲明的方式將它們用到需要它們影響的組件中去。所造成的結果就是這些組件會具有更高的內聚性並且會更加關注自身的業務,完全不需要了解涉及系統服務所帶來的複雜性。總之,AOP能確保POJO的簡單性。

(4)通過切面和模板減少樣板式代碼

注:spring中封裝了一些實現功能的Java API的實現,比如:spring中的JdbcTemplate就是對JDBC訪問數據庫的封裝。

二、spring容器

容器是spring的核心。spring容器使用DI管理構成應用的組件,它會創建相互協作的組件之間的關聯。spring容器並不是只有一個,spring自帶了多個容器的實現,可以歸納爲兩種不同的類型:

(1)bean工廠

(由org.springframework.beans.factory.BeanFactory 接口定義)是最簡單的容器,提供基本的DI支持。

(2)應用上下文

(由org.springframework.context.ApplicationContext 接口定義)基於BeanFactory構建,並提供應用框架級的服務。

注:spring提供了多種類型的應用上下文,比如:

1)AnnotationConfigApplicationContext:從一個或多個基於Java的配置類中加載spring應用上下文

  • AnnotationConfigWebApplicationContext:從一個或多個基於Java的配置類中加載spring web應用上下文

  • ClassPathXmlApplicationContext:從類路徑下的一個或多個XML配置文件中加載上下文定義,把應用上下文的類資源當做是類資源

  • FileSystemXmlApplicationContext:從系統文件下的一個或多個XML配置文件中加載上下文定義

  • XMLWebApplicationContext:從web應用下的一個或多個XML配置文件中加載上下文定義

三、bean的生命週期

在這裏插入圖片描述

具體的文字說明:

(1)spring對bean進行實例化
(2)spring將值和bean的引用注入到bean對應的屬性中
(3)如果bean實現了BeanNameAware接口,spring將bean的ID傳遞給setBeanName()方法
(4)如果bean實現了BeanFactoryAware接口,spring將調用setBeanFactory()方法
(5)如果bean實現了ApplicationContextAware接口,spring將調用setApplicationContext()方法,將bean所在的應用上下文的引用傳入進來
(6)如果bean實現了BeanPostProcessor接口,spring將調用它們的postProcessBeforeInitialization()方法
(7)如果bean實現了InitializingBean接口,spring將調用它們的afterPropertiesSet()方法。類似的,如果bean使用init-method聲明瞭初始化的方法,該方法也會被調用
(8)如果bean實現了BeanPostProcessor接口,spring將調用它們的postProcessAfterInitialization()方法
(9)此時,bean已經準備就緒,可以被應用程序使用了,它們將一直駐留在應用上下文中,直到該應用上下文被銷燬
(10)如果bean實現了DisposableBean接口,spring將調用它的destroy()接口方法。同樣,如果bean使用了destroy-method聲明瞭銷燬方法,該方法也會被調用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章