springboot中spring aop實現的動態代理-cglib和JDK


spring aop默認使用JDK還是Cglib動態代理?

一般情況:實現接口類,接口類為JDK ,實現類為Cglib動態代理

springboot2.x默認使用的代理是cglib代理

實現原理:

    spring.aop.proxy-target-class屬性值為true 調用cglib

 

 自動配置,默認是true

但是有一情況況例外:

  存在@EnableAsync和@EnableCaching,默認 spring.aop.proxy-target-class屬性值為false

 

 

 示例代碼:

 

testService存在@Async注解,這樣spring.aop.proxy-target-class屬性值為false和ITestService為接口類,則使用JDK動態注解

 

 

test1Service為接口類和test1ServiceImpl為實現類,沒有@Async注解,則使用的是Cglib動態代理

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM