关于两种自动增强方式应用场景的疑问

关于两种自动增强方式应用场景的疑问

老师您好关于这两种自动代理我有如下疑问:

  1. BeanName 视频中老师说不方便匹配特定的方法,但是我自己尝试了下配RegexpMethodPointcutAdvisor是可以成功增强我想增强的方法的。

    http://img1.sycdn.imooc.com//climg/5f08472d09f5abda08050359.jpg

  2. DefaulAdvisor 视频中的这种配置方式只是对一个Dao的特定方法进行增强,那又如何体现了他自动增强的特性呢?其他的Dao没有被增强呀。那么这和我单独配置一个Dao的增强又有什么区别呢?

谢谢老师的解答

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,

BeanNameAutoProxyCreator是自动创建代理对象,如果需要一个切面织入到多个目标对象中,可以选择BeanNameAutoProxyCreator。

RegexMethodPointcutAdvisor是方法切入,可以只让切面(通知)织入到目标对象的某几个方法内。

这两个类都可以完成代理,但是侧重点有些不同,同学应该根据实际业务需求来使用不同的代理。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕阿慧 2020-07-11 10:37:58

同学你好,

1、同学的代码可以进行增强。课程中老师没有配置RegexpMethodPointcutAdvisor,如果不配置这个类,是不可以对某些类中的某些方法进行增强的。

2、这种方式的自动代理,如果对多个Dao的save方法进行增强,需要多个配置切面。如下:

http://img1.sycdn.imooc.com//climg/5f0925de09a2aa8e11820293.jpg

当要配置的Dao很多时,就比较麻烦了。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 MarekZhang #1
    对呀老师,所以说我不明白为什么RegexpMethodPointcutAdvisor本质上与配置单个代理有什么区别。因为视频中老师是说配置单个的方法很麻烦才引出后续这两个自动代理的讲解的,结果这又与单个配置代理没有大区别,所以我很疑惑。
    2020-07-11 15:50:02
好帮手慕阿慧 2020-07-10 19:32:36

同学你好,

1、老师这边测试并不能对某些方法进行增强。

2、本节课使用DefaultAdvisorAutoProxyCreator类是为了对Dao中一些方法进行自动代理,而不是自动增强。

其他的Dao没有被增强是因为在配置文件中,只配置了对CustomerDao类的save方法进行增强。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 MarekZhang #1
    不好意思老师问题1的配置我贴错了,正确的如下,可以对所以Dao中save方法进行增强 <bean id="CustomerDao" class="com.adviceForDao.CustomerDao"/> <bean id="StudentDao" class="com.adviceForDao.StudentDaoImpll"/> <bean id="BeforeAdvice" class="com.adviceForDao.BeforeAdvice"/> <bean id="AroundAdvisor" class="com.adviceForDao.AroundAdvisor"/> <bean id="MyAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"> <property name="pattern" value=".*save.*"/> <property name="advice" ref="AroundAdvisor"/> </bean> <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="beanNames" value="*Dao"/> <property name="interceptorNames" value="MyAdvisor"/> </bean>
    2020-07-10 21:12:43
  • 提问者 MarekZhang #2
    问题二: 因为配置了CustomerDao的save方法所以save方法可以增强。那这种方式的自动代理并没有解决老师视频中提到的增强100个Dao配置100个Dao的痛点呀
    2020-07-10 21:14:45
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师