• 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("美国");

    源码下载

  • 相关阅读:
    TI科学家谈浮点DSP未来发展
    请爱护你的JTAG烧录口---记录
    程序猿必看
    富人与穷人的区别--转自红尘
    DSP已经英雄迟暮了吗?FPGA才是未来的大杀器?
    FPGA+ARM or FPGA+DSP?
    DDR3调试记录
    调试记录1
    有关FPGA
    Nginx常见配置说明
  • 原文地址:https://www.cnblogs.com/schangxiang/p/11155064.html
Copyright © 2020-2023  润新知