标签:复制 junit service 私有方法 unit 切面 nbsp 顺序 测试

复制依赖和改jar包方式

src下的都复制过来。

复制到新项目里了

bean.xml里面复制上面一行代码到下面。把aop改成context。



Service的配置这里就可以删除了

使用@Service注解


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

所以这里用@Component这个注解来配置

写完上面的@Component的注解后。bean.cml内的配置就可以删除了


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



环绕通知

写完这些通知的注解就报错。因为没有切入点表达式
这是我们之前的bean.xml内配置的切入点表达式

新定义的私有方法pt1在pt1的上面定义的切入点表达式和注解

beam.xml内这些就都可以删除了




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


后置居然在最终的前面了

我们都知道 后置通知和异常是互斥的。这里把异常放开

后置通知消失了 变成了异常通知

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

通知都注释掉

环绕通知没有这个问题。这个也好理解,因为代码是我们自己写的 想让他什么时候执行,就什么时候执行

把异常放开的执行效果

如果用注解的话,更建议用环绕通知,因为注解在调用的通知顺序上有问题
注解的配置确实比较简单。因为bean.xml配置就剩下这两行了

切入点的配置也很规范

只写了方法名 ,没写后面的括号

这里其实已经提示报错了

运行就会报错。
讲义的最后

阶段3 2.Spring_08.面向切面编程 AOP_9 spring基于注解的AOP配置
标签:复制 junit service 私有方法 unit 切面 nbsp 顺序 测试
原文地址:https://www.cnblogs.com/wangjunwei/p/11359708.html