关于Spring传统AOP基于Bean名称自动代理的疑问

关于Spring传统AOP基于Bean名称自动代理的疑问

老师, 如果我们要对两个目标类进行不同的自动代理配置,那是不是需要
配置两个BeanNameAutoProxyCreator,就像下面这样,所以说,基于bean名称
的配置如果是对于大量目标类实现同一种通知的时候就很适用,但是如果不是很多
的目标类,而且实现的通知不同,就要重复配置BeanNameAutoProxyCreator,也是挺麻烦的?

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--配置目标类-->
    <bean id="studentDao" class="com.zhou.aop.demo5.StudentDaoImpl"/>
    <bean id="customerDao" class="com.zhou.aop.demo5.CustomerDao"/>

    <!--配置通知(也叫配置增强)-->
    <bean id="myBeforeAdvice" class="com.zhou.aop.demo5.MyBeforeAdvice"/>
    <bean id="myAroundAdvice" class="com.zhou.aop.demo5.MyAroundAdvice"/>

<!--配置完整自动代理:-->
    <!--配置基于Bean名称的自动代理-->⭐1
    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
        <!--配置属性-->
       <!--<property name="beanNames" value="studentDao,customerDao"/>-->
        <property name="beanNames" value="studentDao"/>

        <!--对它使用哪一种增强-->
        <property name="interceptorNames" value="myBeforeAdvice"/>
    </bean>
	
	<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
        <!--配置属性-->
       <!--<property name="beanNames" value="studentDao,customerDao"/>-->
        <property name="beanNames" value="customerDao"/>

        <!--对它使用哪一种增强-->
        <property name="interceptorNames" value="myAroundAdvice"/>
    </bean>
</beans>


正在回答

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

1回答

同学你好!

是有点繁琐,在后面的会学习基于AspectJ的AOP开发。在给不同的类配置不同的通知时,会比较简单。你可以继续往后学

祝学习愉快~


问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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