顾问包装通知

  通知(advice)Spring中的一种比较简单的切面,只能将切面织入到目标类的所有方法中,而无法对指定方法进行增强

    顾问(advisor)Spring提供的另外一种切面,可以织入到指定的方法接口 PointcutAdvisor

  实现类:NameMatchMethodPointcutAdvisor(基于方法名称的增强顾问),RegexpMethodPointcutAdvice(基于正则表达式的增强顾问)

  实例:

    DOSomeService接口:

      

    DoSomeServiceImpl实现类:

      

    BeforAdvice增强类:

      

    application-advisor.xml文件:

      

    测试:

      

    结果:

      

顾问代理生成器 

  顾问代理生成器,当我们声明好顾问后为目标对象生成代理对象。如果项目中 存在多个代理对象的话,需要实例化许多的ProxyFactoryBean,我们可以使用顾问代理生成器来解决这个问题。  

  自动顾问代理生成器 

    实例: 

      IService接口:

        

      IServiceImpl实现类:

        

      Advisor增强类:

        

      applicationContext-advisor.xml文件:  

        

      测试:

        

      结果:

        

  名称顾问代理生成器

      IService接口:

        

      IServiceImpl实现类:

        

      UserServiceImpl实现类:

        

      Advisor增强类:

        

      applicationContext-advisor.xml文件:

        

      测试:

        

      结果:

        

 

 posted on 2019-10-31 10:43  wnwn  阅读(178)  评论(0编辑  收藏  举报