Spring4總結


1. 明確Spring的主要作用就是為代碼“解耦”,降低代碼間的耦合度。使用IoC使得主業務在相互調用過程中,不用再自己維護關系了,即不用再自己創建要使用的對象了,而是由Spring容器統一管理,自動“注入”;使用AOP使得系統級服務得到了最大的復用,且不用再由程序員手工將系統級服務“混雜”到主業務邏輯中了,而是由Spring容器統一完成“織入”。

 

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

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

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

4. 明確Bean的作用域:singletonprototyperequestsession、global session了解Bean的生命周期,分為11步,明確其中的Bean后處理器Bean的定制生命始末

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

 

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

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

 沒主業務接口的時候使用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整合開發

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM