顾问包装通知
通知(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文件:
测试:
结果: