Spring AOP 创建Advice 定义pointcut、advisor
2019-07-09 07:22
295 查看
前面定义的advice都是直接植入到代理接口的执行之前和之后,或者在异常发生时,事实上,还可以对植入的时机定义的更细。
Pointcut定义了advice的应用时机,在Spring中pointcutAdvisor将pointcut和advice结合成一个对象,spring内建的pointcut都对应着pointcutAdvisor,常见的有下面两种:
NameMatchMethodPointcutAdvisor:他是最基本的pointcutAdvisor,是静态pointcut的实例,你可以指定advice所要应用的目标方法名称,或者用*来指定。例如 hello* 代表以hello开头的所有方法名称,都要应用到指定的advice上。
RegExpMethodPointcutAdvisor:可以让你用正则表达式的方式来定义pointcut,他是静态pointcut实例,在符合正则表达式的情况下,应用到指定的advice上。其中,bean中有一个pattern属性,用于写入正则表达式
public interface IHello { public void sayHello(String str) throws Exception; public void sayHelloChina(String str); public void sayHelloEnglish(String str); } public class Hello implements IHello { @Override public void sayHello(String str) throws Exception { System.out.println("你好"+str); //测试抛出异常 throw new Exception("故意造成异常!"); } @Override public void sayHelloChina(String str) { System.out.println("你好"+str); } @Override public void sayHelloEnglish(String str) { System.out.println("Hello"+str); } }
hello.sayHelloChina("中国");
hello.sayHelloEnglish("美国");
相关文章推荐
- Spring源码分析----AOP概念(Advice,Pointcut,Advisor)和AOP的设计与实现
- Spring Aop中的advisor、advice、pointcut
- spring aop方式配置事务中的三个概念 pointcut advice advisor
- Spring中的Advisor,Advice,Pointcut
- Spring中的Advisor,Advice,Pointcut,Advised
- Spring-AOP 增强(Advice)5种类型和创建增强类
- Spring横切面(advice),增强(advisor),切入点(PointCut)(转)
- Spring AOP中定义切点(PointCut)和通知(Advice)
- Spring-AOP 自动创建代理之DefaultAdvisorAutoProxyCreator
- Spring 3 AOP总结 (包含注解式AOP定义, poincut及advice的一些定义方式)
- Spring中的Advisor,Advice,Pointcut
- Spring 3 AOP总结 (包含注解式AOP定义, poincut及advice的一些定义方式)
- 对于Spring JoinPoint Pointcut Advice Advisor定义的理解
- 17、spring AOP通知——Pointcut、Advisor
- Spring 使用 DefaultAdvisorAutoProxyCreator创建AOP 小结
- AOP里面3个概念Advice,PointCut,Advisor(转载)
- Spring AOP Example – Pointcut , Advisor
- Spring AOP Example – Pointcut , Advisor
- Spring AOP Example Tutorial – Aspect, Advice, Pointcut, JoinPoint, Annotations, XML Configuration
- Spring AOP 中 advice 的四种类型 before after throwing advice around