Spring AOP
4.1應(yīng)用場景
- 日志
- 聲明式事務(wù)
- 安全
- 緩存
- 通過@Around多次調(diào)用被通知方法欠动,實(shí)現(xiàn)方法調(diào)用失敗后的重試
- 統(tǒng)計(jì)方法調(diào)用次數(shù)式塌,方法中某個(gè)參數(shù)的調(diào)用次數(shù)
4.2基本概念
Advice-通知
描述切面完成的工作
Before | After | After-returning | After-throwing | Around
Join point-連接點(diǎn)
可以插入切面的點(diǎn)
Pointcut-切點(diǎn)
織入切點(diǎn)的地方
4.3Spring AOP支持
- 基于代理的Spring AOP
- POJO切面
- @AspectJ注解驅(qū)動(dòng)切面
- 注入式AspectJ切面
基于動(dòng)態(tài)代理實(shí)現(xiàn)咳胃,運(yùn)行期織入切面彤灶,局限于方法攔截
4.4注解創(chuàng)建切面
- @AspectJ標(biāo)注POJO類
- @Before@AfterReturning@AfterThrowing@After@Around 標(biāo)注方法
- 2中的注解的value屬性為切點(diǎn)表達(dá)式,方法為切面邏輯
- 聲明為bean
- @EnableAspectJAutoProxy | <aop:aspectj-autoproxy> (用于解析@AspectJ等切面注解)
4.5XML聲明切面
- 切面POJO無注解
- 注冊為bean
- <aop:config></aop:config>