具体有以下四步骤:html
cglib(Code Generation Library)是一个强大的,高性能,高质量的Code生成类库。它能够在运行期扩展Java类与实现Java接口。java
java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,经过修改其字节码生成子类来处理。git
在Spring Boot中咱们能够经过配置文件制定代理类型。github
#开启对AOP的支持 spring.aop.auto=true #设置代理模式 true(cglib) false(java JDK代理) spring.aop.proxy-target-class=true
Spring Boot事务默认是使用的cglib代理,能够经过上面的方式去指定代理模式。spring
源码:https://github.com/wyh-spring-ecosystem-student/spring-boot-student/tree/releases函数
spring-boot-student-data-jpa-transaction 工程spring-boot