Spring AOP 创建Advice 定义pointcut、advisor

2019-08-16 10:01:16来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

Spring AOP 创建Advice 定义pointcut、advisor

 

  前面定义的advice都是直接植入到代理接口的执行之前和之后,或者在异常发生时,事实上,还可以对植入的时机定义的更细。

  Pointcut定义了advice的应用时机,在SpringpointcutAdvisorpointcutadvice结合成一个对象,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("美国");

 

源码下载


原文链接:https://www.cnblogs.com/schangxiang/p/11155064.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:乐字节Java反射之二:实例化对象、接口与父类、修饰符和属性

下一篇:if语句基本练习需求