xml方式如何给一个切入点添加多个通知啊?

来源:4-3 各种通知类型的配置

weixin_慕虎5578550

2019-08-30 15:09:39

<aop:config>
        <!-- 配置切入点-->
        <aop:pointcut id="pointcut1" expression="execution(* com.imooc.demo2.CustomDao.save(..))" />
        <aop:pointcut id="pointcut2" expression="execution(* com.imooc.demo2.CustomDao.update(..))" />
        <aop:pointcut id="pointcut3" expression="execution(* com.imooc.demo2.CustomDao.delete(..))" />
        <aop:pointcut id="pointcut4" expression="execution(* com.imooc.demo2.CustomDao.findOne(..))" />
        <aop:pointcut id="pointcut5" expression="execution(* com.imooc.demo2.CustomDao.findAll(..))" />
        <!--配置切面-->
        <aop:aspect ref="myAspectXml">
                <!--配置前置通知-->
                <aop:before method="before" pointcut-ref="pointcut1" />
                <!--配置后置通知-->
                <aop:after-returning method="afterReturing" pointcut-ref="pointcut2" returning="result"/>
                <!-- 配置环绕通知-->
                <aop:around method="around" pointcut-ref="pointcut3"/>
                <!-- 异常抛出通知-->
                <aop:after-throwing method="afterThrowing" pointcut-ref="pointcut4" throwing="e"/>
                <!-- 最终通知-->
                <aop:after method="after" pointcut-ref="pointcut5"/>
        </aop:aspect>
</aop:config>

问题:(1)怎么给一个切入点添加多个通知?使用pointcut-ref="pointcut1||pointcut2"会异常。

(2)通知的属性里面有pointcut-ref=""和pointcut=""属性,他们有什么区别吗?

写回答

1回答

好帮手慕阿满

2019-08-30

同学你好,关于同学的问题:

1、给一个切入点配置多个通知,可参考如下:

http://img.mukewang.com/climg/5d68d1f600010f3811490525.jpg

配置之后,执行效果如下,save方法就具有多个通知了。

http://img.mukewang.com/climg/5d68d211000184b509150200.jpg

2、pointcut-ref是前边配置好了切入点,然后在通知中,使用pointcut-ref引入配置切入点击的id即可,而pointcut是中是引入切入点,如:

http://img.mukewang.com/climg/5d68d56700019d2d10000213.jpg

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

0
heixin_慕虎5578550
h 谢谢老师!
h019-08-30
共1条回复

0 学习 · 8263 问题

查看课程