阶段3 2.Spring_08.面向切面编程 AOP_9 spring基于注解的AOP配置

Posted wangjunwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阶段3 2.Spring_08.面向切面编程 AOP_9 spring基于注解的AOP配置相关的知识,希望对你有一定的参考价值。


技术图片

复制依赖和改jar包方式
技术图片
src下的都复制过来。
技术图片
复制到新项目里了
技术图片
bean.xml里面复制上面一行代码到下面。把aop改成context。
技术图片

技术图片

配置spring容器创建时要扫描的包

技术图片
Service的配置这里就可以删除了
技术图片

配置注解

使用@Service注解
技术图片

开始AOP配置

把通知类交给Spring来管理

技术图片
在Logger上加注解。之类注意,@Service和@Repository都不合适。因为logger属于三层
技术图片

所以这里用@Component这个注解来配置
技术图片
写完上面的@Component的注解后。bean.cml内的配置就可以删除了
技术图片

配置切面类

技术图片
注意Before这里是aspectj这个包里的,不要和JUnit的混了。
技术图片


技术图片
技术图片
环绕通知
技术图片
写完这些通知的注解就报错。因为没有切入点表达式

这是我们之前的bean.xml内配置的切入点表达式
技术图片
新定义的私有方法pt1在pt1的上面定义的切入点表达式和注解
技术图片
beam.xml内这些就都可以删除了
技术图片

开启Spring开启注解AOP的支持

技术图片

引用注解表达式


技术图片
技术图片
这里测试前面四个通知的时候,先把环绕通知注释掉
技术图片

测试

技术图片
后置居然在最终的前面了
技术图片
我们都知道 后置通知和异常是互斥的。这里把异常放开
技术图片
后置通知消失了 变成了异常通知
技术图片

Spring基于注解的,这四个通知确实有调用的顺序问题,所以我们在开发中,要有一个慎重的考虑

环绕通知放开,其他通知都注释掉
技术图片
通知都注释掉
技术图片
环绕通知没有这个问题。这个也好理解,因为代码是我们自己写的 想让他什么时候执行,就什么时候执行
技术图片
把异常放开的执行效果
技术图片
如果用注解的话,更建议用环绕通知,因为注解在调用的通知顺序上有问题

总结

注解的配置确实比较简单。因为bean.xml配置就剩下这两行了
技术图片
切入点的配置也很规范
技术图片

演示下括号的问题

只写了方法名 ,没写后面的括号
技术图片
这里其实已经提示报错了
技术图片
运行就会报错。

不使用xml配置的方法


讲义的最后
技术图片

 

以上是关于阶段3 2.Spring_08.面向切面编程 AOP_9 spring基于注解的AOP配置的主要内容,如果未能解决你的问题,请参考以下文章

Spring一文带你吃透AOP面向切面编程技术(上篇)

AOP面向切面编程思想。

AOP(面向切面编程概念,本文为翻译)

spring源码学习spring的AOP面向切面编程的实现解析

AOP编程

(2021.9.25)面向切面编程简述