Spring4總結

1. 明確Spring的主要做用就是爲代碼「解耦」,下降代碼間的耦合度。使用IoC使得主業務在相互調用過程當中,不用再本身維護關係了,即不用再本身建立要使用的對象了,而是由Spring容器統一管理,自動「注入」;使用AOP使得系統級服務獲得了最大的複用,且不用再由程序員手工將系統級服務「混雜」到主業務邏輯中了,而是由Spring容器統一完成「織入」。程序員

 

2. 明確IoC(控制反轉)是對對象控制權的轉移,從程序代碼自己反轉到了外部容器,由外部容器來實現對象的裝配和管理,其不能使用在分佈式系統中。即其所依賴的反轉到的外部容器,必需要與控制權出讓方同處於一個 JVM 中;數據庫

 IoC是一種思想,比較流行的實現方式有兩種:依賴查找依賴注入,Spring使用的是依賴注入。
session

3. 明確Bean的裝配,建立Bean對象的方式有三種:getBean()方式、動態工廠Bean方式、靜態工廠Bean方式分佈式

4. 明確Bean的做用域:singletonprototyperequestsession、global session瞭解Bean的生命週期,分爲11步,明確其中的Bean後處理器Bean的定製生命始末工具

5. 明確基於XML的依賴注入方式和基於註解的依賴注入方式,重點關注域屬性注入的byNamebyType。若註解與 XML 同用,XML 的優先級要高於註解。這樣作的好處是,須要對某個 Bean作修改,只需修改配置文件便可。固然,此時,Bean 類要有 setXXX() 或構造器。spa

 

6. 明確AOP的底層是動態代理(JDK的動態代理或CGLIB動態代理),AOP的知識點有:切面、織入、鏈接點、切入點、目標對象、通知和顧問prototype

 通知有前置通知、後置通知、環繞通知、異常處理通知,通知只能指定織入的時間點,同時會織入目標類的全部方法;
代理

 沒主業務接口的時候使用CGLIB動態代理,有主業務接口也能夠指定使用CGLIB動態代理(有時候,CGLIB動態代理比JDK的動態代理高效);
對象

 顧問對通知進行了包裝,既能指定織入的時間點,又能指定織入的位置(具體織入目標類的哪一個方法);
接口

 代理的生成方式有三種:

  1. 由 ProxyFactoryBean 代理工具類生成,一個代理對象只能代理一個Bean,同時在客戶端使用的是代理對象的id。

  2. 由默認 advisor 自動代理生成器生成,將全部的目標對象與 Advisor 自動結合,生成代理對象。無需給生成器作任何的注入配置。注意,只能與 Advisor 配合使用。

  3. 由 Bean 名稱自動代理生成器生成,根據 bean 的 id,爲符合相應名稱的類生成相應代理對象,既能與 Advice ,又能與 Advisor 配合使用。

 注意:加強的方法不能是final的。

7. 明確AspectJ對AOP的實現,也分紅基於註解的方式和基於XML的方式,其中基於XML的方式是Spring實現AOP的最經常使用方法,注意AspectJ有六種通知,多了最終通知和引用通知

 

8. 瞭解Spring的JDBC模板是Ioc應用的示例,將數據源 DataSource 對象和 JDBC 模板對象注入給了 Dao 層的實現類

 

9. 明確Spring的事務管理是AOP應用的示例,將事務做爲切面織入到了 Service 層的業務方法中,從而將事務特性從數據庫層提高到Service層,從而使同事務的特性來管理具體的業務;

  在 Spring 中一般能夠經過如下三種方式來實現對事務的管理:
    1.使用 Spring 的事務代理工廠管理事務
    2.使用 Spring 的事務註解管理事務
    3.使用 AspectJ 的 AOP 配置管理事務 (最經常使用)

 注意:事務定義接口定義了事務描述相關的三類常量:事務隔離級別、事務傳播行爲、事務默認超時時限,及對它們的操做

    Spring 事務的默認回滾方式是:發生運行時異常時回滾,發生受查異常時提交。不過,對於受查異常,程序員也能夠手工設置其回滾方式。

 

10. SSH整合開發

相關文章
相關標籤/搜索