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動態代理

