最近在学习spring的AOP编程这块,看视频,老师讲环绕通知最为重要,但我不太明白环绕通知的作用体现在哪,测试发现环绕通知不会执行目标方法,那要环绕通知有何用?
环绕一般打印日志啥的作用.就是在目标程序前后加上一段程序
日志的话,那前置通知也可以啊。
@关中王: spring 的环绕通知和前置通知,后置通知有着很大的区别,主要有两个重要的区别:
1) 目标方法的调用由环绕通知决定,即你可以决定是否调用目标方法,而前置和后置通知 是不能决定的,他们只是在方法的调用前后执行通知而已,即目标方法肯定是要执行的。
2) 环绕通知可以控制返回对象,即你可以返回一个与目标对象完全不同的返回值,虽然这很危险,但是你却可以办到。而后置方法是无法办到的,因为他是在目标方法返回值后调用
使用面向切面来处理一些问公共的问题,比如,权限管理,事务的委托
,当程序发生异常时,重复提交请求,重复的次数是可以设定的
当我们开发企业级应用时,通常会想要从几个切面来引用模块化的应用和特定操作的集合
@DanBrown: 谢谢你帮我找答案。
环绕通知如何决定是否执行目标方法?
@关中王: 具体方法是给切面类增加@Order注解,并指定具体的数字,值越小优先级越高
@DanBrown: 查了一下@Order是控制bean加载的优先级的,不明白你说的这种。
@关中王: https://www.cnblogs.com/dreamfree/p/4102619.html 没有必要在这理解这么深,知道有这个东西就行,等用到的时候在看,抓重点
@DanBrown: 谢谢,这个链接看懂了。