具體有以下四步驟: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