一、aop 思想介紹
- 橫向重復(fù),縱向抽取 filter

- 動態(tài)代理

- interceptor中

二、spring中的aop概念
- 封裝了動態(tài)代理技術(shù).來體現(xiàn)aop.

三、spring實現(xiàn)aop的原理
動態(tài)代理(有接口的話優(yōu)先使用動態(tài)代理)
被代理對象必須要實現(xiàn)接口,才能產(chǎn)生代理對象。如果沒有接口將不能使用動態(tài)代理技術(shù)cglib代理(沒有接口)
第三方代理技術(shù),cglib代理.可以對任何類生成代理,代理的原理是對目標(biāo)對象進行繼承代理。如果目標(biāo)對象被final修飾,那么該類無法被cglib代理.
四、aop名詞學(xué)習(xí)

五、spring中的aop演示
-
xml配置步驟
|--> 01.導(dǎo)包 4 + 2
spring的aop包:spring-aspects-4.2.4.RELEASE.jar + spring-aop-4.2.4.RELEASE.jar
spring需要第三方aop包:com.springsource.org.aopalliance-1.0.0.jar + com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
|--> 02.準(zhǔn)備目標(biāo)對象
|--> 03.準(zhǔn)備通知
|--> 04.配置進行織入,將通知織入目標(biāo)對象中
-
注解配置步驟
|--> 01.導(dǎo)包 4 + 2
spring的aop包:spring-aspects-4.2.4.RELEASE.jar + spring-aop-4.2.4.RELEASE.jar
spring需要第三方aop包:com.springsource.org.aopalliance-1.0.0.jar + com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
|--> 02.準(zhǔn)備目標(biāo)對象
|--> 03.準(zhǔn)備通知
|--> 04.配置進行織入,將通知織入目標(biāo)對象中


六、spring中aop事務(wù)
-
spring封裝了事務(wù)管理代碼
1)、事務(wù)操作:打開事務(wù)、提交事務(wù)、回滾事務(wù)
2)、事務(wù)操作對象(因為在不同平臺,操作事務(wù)的代碼各不相同.spring提供了一個接口)
??|--> PlatformTransactionManager 接口
????|-> DataSourceTransactionManager
????|-> HibernateTransactionManager
????|-> 注意:在spring中玩事務(wù)管理.最為核心的對象就是TransactionManager對象
??|--> spring管理事務(wù)的屬性介紹
????|-> 事務(wù)的隔離級別
??????1 讀未提交
??????2 讀已提交
??????4 可重復(fù)讀
??????8 串行化
????|-> 是否只讀 (true 只讀 | false 可操作)
????|-> 事務(wù)的傳播行為
-
spring管理事務(wù)方式
1)、編碼式(不常用)
01.將核心事務(wù)管理器配置到spring容器
02.配置TransactionTemplate模板
03.將事務(wù)模板注入Service
04.在Service中調(diào)用模板
2)、xml配置(aop)
|-> 01.導(dǎo)包 (aop | aspect | aop聯(lián)盟 | weaving織入包)
|-> 02.導(dǎo)入新的約束(tx)

beans: 最基本、context:讀取properties配置、aop:配置aop、tx:配置事務(wù)通知
|-> 03.配置通知

|-> 04.配置將通知織入目標(biāo)

3)、注解配置(aop) ---> 非常重要
|-> 01.導(dǎo)包 (aop | aspect | aop聯(lián)盟 | weaving織入包)
|-> 02.導(dǎo)入新的約束(tx)

beans: 最基本、context:讀取properties配置、aop:配置aop、tx:配置事務(wù)通知
|-> 03.開啟注解管理事務(wù)

|-> 04.使用注解


注解可以加在方法上,也可以抽取出來加在類上(若個別方法注解某些屬性不同,還可以單獨將注解加在方法上)












