Spring的IOC的註解(學習筆記二)

1.1 @Component:組件

  • 修飾一個類,將這個類交給Spring來管理
  • 該註解有三個衍生註解(功能相似),建議使用
    • @Controller:修飾web層的類
    • @Service :修飾service層的類
    • @Repository:修飾dao層的類

屬性注入的註解

  • 普通屬性
    • @Value : 設置普通屬性的值
  • 對象類型屬性
    • @Autoware :設置對象類型的屬性值,可是按照類型完成屬性注入,咱們習慣按照名稱完成屬性注入,必須讓該註解與@Qualified註解一塊兒使用,@Qualified(value="")傳入具體的名稱
    • @Resource : 完成對象類型的屬性注入:按照名稱來完成的屬性,實際開發中常使用,是Spring實現的一套接口規範

Bean的其餘註解

一: 生命週期相關web

  • @PostConstruct :初始化方法
  • @PreDestroy :銷燬方法

二:Bean的做用範圍註解 @Scope:做用範圍spring

  • singleton :默認單例
  • prototype :多例
  • request :
  • session :
  • globalsession:

1.2 IOC基於XML配置與註解配置的比較

  1. 適用場景
  • XML: 適用於任何場景,結構清晰維護方便
  • 註解:該類不是註解提供的,好比說是源代碼的。開發方便
  1. XML和註解整合開發
  • XML管理Bean
  • 註解完成屬性注入

Spring的AOP的XML開發

一:底層實現原理session

  • 動態代理
    • JDK動態代理 :只能對實現接口的類產生代理
    • Cglib動態代理(相似於Javassist第三方代理技術):對於沒有接口的類產生代理,生成子對象

二: JDK動態代理函數

三: Cglib動態代理單元測試

1.3 Spring的AOP開發(AspectJ的XML的方式)

  • 建立web項目,引進jar包
    • 引入基本的開發包

  • 引入aop開發相關的jar包 測試

  • 引入Spring的配置文件prototype

    • 引入aop約束

  • 編寫目標類,完成配置

  1. 編寫測試類,引入Spring單元測試的jar包

2. 編寫切面類

3. 將切面類交給Spring管理

4. 經過AOP的配置來完成對目標類產生代理

1.4 Spring中的通知類型

1.4.1 前置通知: 在目標方法執行前進行操做

  • 得到切入點信息,在代理類MyAspectXML中的checkPri的方法中傳入以下參數,並運行測試類,獲得結果

1.4.2 後置通知: 在目標方法執行以後的操做

  • 獲取切入點信息以及方法的返回值

1.4.3 環繞通知: 在目標方法執行以前和執行以後進行操做

  • 阻止目標方法的執行

1.4.4 異常拋出通知: 在程序出現異常的時候,進行的操做

1.4.5 最終通知: 無論代碼有沒有異常,總會執行

14.6 引介通知:

Spring的切入點表達式

  • 基於excution的函數完成的
  • 語法
    • [訪問修飾符] 方法返回值 包名 類名.方法名(參數)
    • public void it.spring.demo.CustomerDao.save(..)
    • *it.spring.demo.CustomerDao+save(...)
相關文章
相關標籤/搜索