Spring 實戰 七: 宣告切面的兩種方式
阿新 • • 發佈:2018-11-16
使用註解
- @After
- @AfterReturning
- @AfterThrowing
- @Around
- @Before
使用 javaConfig 時需要在配置類上加上 @EnableAspectJAutoProxy 註解,xml 時使用:
環繞通知
args 限定符,表明床底給 play 方法的 int 型引數也會傳遞到通知中。
通過註解引入新功能(新方法)
- 通過 spring aop,我們可以為 bean 引入新方法
- 當引入介面的方法被呼叫時,代理會把此呼叫委託給實現了介面的某個其他物件
- 藉助 aop 引入功能,我們可以不必在設計上妥協或者侵入性的改變現有的實現
@DeclareParents 註解可將新介面引入到現有 bean 中
value:指明哪種型別的 bean 要引入該介面
defaultImpl:為引入功能提供實現的類
@DeclareParents 註解的成員指明瞭要引入的介面
在 xml 中宣告切面
<aop:advisor>
<aop:after>
<aop:after-returning>
<aop:after-throwing>
<aop:around>
<aop:aspect>
<aop:aspectj-autoproxy >
<aop:before>
<aop:config> 頂層 aop 配置元素,大多數 <aop:*>都為其子屬性
<aop:declare-parents>
<aop:pointcut>