-
环绕通知
这种Advisor方式,在真实的业务场景中,如果需要对于某个方法统计执行次数,或者在尝试执行3次失败后就不会再尝试(例如,获取prpo的接口信息时可以使用这个)
查看全部 -
Advisors
advisor 就像一个小的自包含的方面,只有一个advice
切面自身通过一个bean表示,并且必须实现某个advice接口,同事,advisor也可以很好的额利用AspectJ的切入点表达式
Spring通过配置文件中<aop:advisor>元素支持advisor, 实际使用中,大多数情况下他会和transactional advice配合使用
为了定义一个advisor的优先级以便让advice可以有序,可以使用order属性来定义advisor的顺序
查看全部 -
Aspect instantiation models
schema-defined aspects只支持singleton model
很重要
查看全部 -
<aop:declare-parents types-matching="com.mooc.aop.schema.advice.biz.*(+)"
implement-interface="com.mooc.aop.schema.advice.Fit"
default-impl="com.mooc.aop.schema.advice.FitImpl"
>
代码调用:
Fit fit = (Fit)super.getBean("aspecctBiz");(强制转换成接口实现类中的默认)
fit.filter();
查看全部 -
Introductions
简介允许一个切面声明一个实现指定接口的通知对象,并且提供了一个接口实现类来代表这些对象
由<aop:aspect>中的<aop:declare-parents>元素声明该元素用于声明所匹配的类型拥有一个新的parent(因此得名)
查看全部 -
Advice parameters XML配置
查看全部 -
Advice parameters
查看全部 -
Around advice
通知方法的第一个参数必须是ProceedingJoinPoint类型
查看全部 -
After(finally)advice
查看全部 -
After throwing advice
使用throwing属性来指定可被传递的异常的参数名称
查看全部 -
After returning advice
查看全部 -
Before Advice
查看全部 -
所有以结尾的类的方法执行前都需要先执行MoocAspect类中的before方法
查看全部 -
pointcut
within(com.xyz.service.*)(only in Spring AOP)
within(com.xyz.service..*)(only in Spring AOP)
within 用于匹配指定类型内的方法执行
this(com.xyz.service.AccountService)(only in Spring AOP)
this 用于匹配当前AOP代理对象类型的执行方法
查看全部 -
pointcut
execution(public * *(..)) 切入点为执行所有public方法时
execution(*set*(..)) 切入点为执行所有set开始的方法时
execution(*com.xyz.service.AccountService.*(..)) 切入点为执行AccountService类中的所有方法时
execution(*com.xyz.service..(..))切入点为执行com.xyz.service包下的所有方法时
execution(*com.xyz.service...(..))切入点为执行com.xyz.service包及其子包下的所有方法时
查看全部
举报