首页 新闻 搜索 专区 学院

请问AspectJ中的环绕通知作用?

0
悬赏园豆:20 [已解决问题] 解决于 2018-01-14 14:17

最近在学习spring的AOP编程这块,看视频,老师讲环绕通知最为重要,但我不太明白环绕通知的作用体现在哪,测试发现环绕通知不会执行目标方法,那要环绕通知有何用?

pecool的主页 pecool | 初学一级 | 园豆:14
提问于:2018-01-14 11:37
< >
分享
最佳答案
0

环绕一般打印日志啥的作用.就是在目标程序前后加上一段程序

收获园豆:20
DanBrown | 小虾三级 |园豆:1496 | 2018-01-14 13:27

日志的话,那前置通知也可以啊。

pecool | 园豆:14 (初学一级) | 2018-01-14 13:39

@关中王:    spring 的环绕通知和前置通知,后置通知有着很大的区别,主要有两个重要的区别:

1) 目标方法的调用由环绕通知决定,即你可以决定是否调用目标方法,而前置和后置通知   是不能决定的,他们只是在方法的调用前后执行通知而已,即目标方法肯定是要执行的。

2)  环绕通知可以控制返回对象,即你可以返回一个与目标对象完全不同的返回值,虽然这很危险,但是你却可以办到。而后置方法是无法办到的,因为他是在目标方法返回值后调用

   使用面向切面来处理一些问公共的问题,比如,权限管理,事务的委托

,当程序发生异常时,重复提交请求,重复的次数是可以设定的

    当我们开发企业级应用时,通常会想要从几个切面来引用模块化的应用和特定操作的集合

DanBrown | 园豆:1496 (小虾三级) | 2018-01-14 13:42

@DanBrown: 谢谢你帮我找答案。

环绕通知如何决定是否执行目标方法?

pecool | 园豆:14 (初学一级) | 2018-01-14 13:50

@关中王: 具体方法是给切面类增加@Order注解,并指定具体的数字,值越小优先级越高

DanBrown | 园豆:1496 (小虾三级) | 2018-01-14 13:52

@DanBrown: 查了一下@Order是控制bean加载的优先级的,不明白你说的这种。

pecool | 园豆:14 (初学一级) | 2018-01-14 14:03

@关中王: https://www.cnblogs.com/dreamfree/p/4102619.html 没有必要在这理解这么深,知道有这个东西就行,等用到的时候在看,抓重点

DanBrown | 园豆:1496 (小虾三级) | 2018-01-14 14:05

@DanBrown: 谢谢,这个链接看懂了。

pecool | 园豆:14 (初学一级) | 2018-01-14 14:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册