一、spring提供了很多常用的接入点和advisor,两者相对出现。
二、NameMatchMethodPointcutAdvisor-NameMatchMethodPointcut
1、用于匹配方法名,确定切入点。
2、可以自己写一个ClassFilter,注入NameMatchMethodPointcut中。
3、也可以直接将方法名注入到mappedName中。或注入集合mappedNames里。
[align=center][i]运行结果:doOther方法执行超时!说明只织入了方法doOther,而doSome方法并未被织入[/i][/align]
三、RegexpMethodPointcutAdvisor-JdkRegexpMethodPointcut、Perl5RegexpMethodPointcut
1、如果JDK版本为1.4以上,spring默认使用JDK的正则表达式,否则使用perl5的正则表达式。
二、NameMatchMethodPointcutAdvisor-NameMatchMethodPointcut
1、用于匹配方法名,确定切入点。
2、可以自己写一个ClassFilter,注入NameMatchMethodPointcut中。
3、也可以直接将方法名注入到mappedName中。或注入集合mappedNames里。
<bean id="nameMethodAdvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
<property name="advice" ref="someServiceAdvice" />
<property name="mappedName" value="doOther" />
</bean>
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("aop/spring/pointcut/applicationContext-src.xml");
ISomeService proxy = (ISomeService) ac.getBean("someServiceProxy");
proxy.doSome();
proxy.doOther();
}
[align=center][i]运行结果:doOther方法执行超时!说明只织入了方法doOther,而doSome方法并未被织入[/i][/align]
三、RegexpMethodPointcutAdvisor-JdkRegexpMethodPointcut、Perl5RegexpMethodPointcut
1、如果JDK版本为1.4以上,spring默认使用JDK的正则表达式,否则使用perl5的正则表达式。