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