SpringBoot动态代理配置说明
·
SpringBoot动态代理配置说明
基于CGLIB的代理与基于JDK的动态代理实现的声明式事务的区别
- CGLIB基于继承实现,JDK动态代理基于实现接口实现
- CGLIB的代理类需要事务注解
@Transactional
标注在类上(或方法);而JDK动态代理类事务注解@Transactional
可以标注在接口上(或方法),也可以标注在实现类上(或方法)
配置项
spring.aop.auto
&spring.aop.proxy-target-class
&@EnableTransactionManagement(proxyTargetClass = true)
auto | proxy-target-class | proxyTargetClass | 代理技术 | 备注 |
---|---|---|---|---|
true | false | false | JDK动态代理 | |
true | true | false | CGLIB | 默认值 |
true | false | true | CGLIB | |
true | true | true | CGLIB | |
false | false | false | JDK动态代理 | |
false | true | false | JDK动态代理 | |
false | false | true | CGLIB | |
false | true | true | CGLIB |
更多推荐
已为社区贡献4条内容
所有评论(0)