详解Spring AOP及事务配置三种模式
Spring AOP的设计思想,就是通过动态代理,在运行期对需要使用的业务逻辑方法进行增强。
使用场景如:日志打印、权限、事务控制等。
默认情况下,Spring会根据被代理的对象是否实现接口来选择使用JDK还是CGLIB。当被代理对象没有实现接口时,Spring会选择CGLIB。当实现了接口,Spring会选择JDK官方的代理技术,不过我们也可以通过配置的方式,让Spring强制使用CGLIB。
配置方式有两种:
2.1 XML模式
主要看下面的aop部分
xml相关切面配置
环绕通知可以实现上面的4种通知,并且可以控制业务方法是否执行。通过如下代码控制:
举例:
2.2 XML+注解模式
2.3 纯注解模式
只需要用注解@EnableAspectJAutoProxy替换掉
也分为3种模式
3.1 XML模式
3.2 基于XML+注解
3.3 纯注解
用@EnableTransactionManagement 注解替换掉
即可
书山有路勤为径,学海无涯苦作舟