spring.datasource.druid.aop-patterns= 这个配置会导致Service被代理二次

jaql4c8m  于 2022-11-02  发布在  Druid
关注(0)|答案(4)|浏览(223)

如题

3mpgtkmj

3mpgtkmj3#

@miaogr86@lihengming
个人分析:这是由于Spring Boot 默认配置造成的:spring.aop.auto=true (等同于@EnableAspectJAutoProxy)。
这个与DefaultAdvisorAutoProxyCreator的再次注入有冲突。
这个bug不仅会导致aop的统计有问题,而且可能还会导致事务的两次代理,等等。

个人实践,添加以下代码即可解决:(如有其它方法,请指出!)
com.alibaba.druid.spring.boot.autoconfigure.stat.DruidSpringAopConfiguration

@ConditionalOnProperty(name = "spring.aop.auto",havingValue = "false")

@Bean
    @ConditionalOnProperty(name = "spring.aop.auto",havingValue = "false")
    public DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator() {
        DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();
        advisorAutoProxyCreator.setProxyTargetClass(true);
        return advisorAutoProxyCreator;
    }
nfeuvbwi

nfeuvbwi4#

@miaogr86 你这个第一个图是怎么调出来的

相关问题