顾问

顾问包装通知

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

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

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

新增advisor包,实现顾问的测试用例

新建app-02.xml文件,内容如下

 

       以上文件使用的是NameMatchMethodPointcutAdvisor,当然也可替换成为 RegExpMethodPonitcutAdvisor,基于正则表达式通配方法名的顾问,可配置性更加优良。

 

        测试代码和声明式增强完全一致。

     2.6顾问代理生成器

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

  

        顾问代理生成器主要分两种

  • 自动顾问代理生成器:DefaultAdvisorAutoProxyCreator
  • 名称顾问代理生成器:BeanNameAutoProxyCreator

        

         继续使用advisor包,创建app-03.xml文件,新增顾问代理生成器

      class="com.cmy.service.impl.DoSomeServiceImpl"></bean>

 

   创建测试用例

   

   名称顾问代理生成器也可以替换成自动顾问代理生成器,自动顾问代理生成器默认为Spring中所有的Bean对象创建代理 无需使用ID注入

 

原文地址:https://www.cnblogs.com/qinzhenyu/p/11771308.html