概述
Aop(aspect oriented programming面向切面編程),是spring框架的另一個特徵。AOP包括切面、連接點、通知(advice)、切入點(pointCut) 。
1.aop幾個概念:
橫切關注點: 對哪些方面進行攔截,攔截後怎麼處理。
切面(aspect):切面是橫切關注點的抽象。
連接點(joinpoint):被攔截的方法
切入點(pointcut):對連接點進行攔截的定義。
通知(advice):攔截到連接點之後要執行的代碼
目標對象:代理的目標對象
織入
引入
2.主要功能:
日誌記錄
性能統計
安全控制
事物處理
異常處理
3.advice類型:
前置通知(before advice)
返回後通知(after returning advice)
拋出異常後通知(after throwing advice)
後通知(after advice)
環繞通知(around advice)
4.Spring對AOP的支持
Spring中AOP代理由Spring的IOC容器負責生成、管理,其依賴關係也由IOC容器負責管理。因此,AOP代理可以直接使用容器中的其它bean實例作為目標,這種關係可由IOC容器的依賴注入提供。
基於xml配置的aop
舉個例子:
切面:
切點:
配置文件:
單元測試:
運行:
MoocAspect before.
AspectBiz biz.
這是 機遇 schemel配置使用aop,其實在spring 1.2版本是有api的,基於api配置aop很麻煩,但是也也應該瞭解下
三、基於spring api方式配置aop
直接上代碼:
接口中有兩個方法,一個基於aop,會被攔截 ,另外一個不會被攔截。
實現類:
方法前攔截器,實現MethodBeforeAdvice,在制定方法前會被調用。
返回後攔截器,執行指定方法後會被調用。
異常攔截器,當出現異常時攔截:
三個攔截器和Servce實現類需要配置到spring中。實際上,spring無法組裝,需要藉助代理類,把攔截器安裝到NameMatchMethodPointcutAdvisor中,把自定義的bean安裝到ProxyFactoryBean中,然後組裝在一起:
閱讀更多 果大爺的幸福生活 的文章