配置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配置的方法
讲义的最后