zoukankan      html  css  js  c++  java
  • The bean 'xxx' could not be injected as a 'com.zp.demo.service.xxx' because it is a JDK dynamic proxy that implements: com.zp.demo.service.ReportService

    springboot 使用事务报错

    报错信息:

    Description:
    
    The bean 'reportImpl' could not be injected as a 'com.zp.demo.service.Impl.ReportImpl' because it is a JDK dynamic proxy that implements:
        com.zp.demo.service.ReportService
    
    
    Action:
    
    Consider injecting the bean as one of its interfaces or forcing the use of CGLib-based proxies by setting proxyTargetClass=true on @EnableAsync and/or @EnableCaching.

    解决方法:

    ①在启动类上添加@EnableAspectJAutoProxy(proxyTargetClass = true)注解:

    @Configuration
    @SpringBootApplication
    @EnableTransactionManagement(proxyTargetClass = true) //开始事务
    public class DemoApplication {
    
    
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }

    ②在报错的service上添加@Scope(proxyMode = ScopedProxyMode.TARGET_CLASS)注解:

    @Service
    @Scope(proxyMode = ScopedProxyMode.TARGET_CLASS)
    public class ReportImpl{
     
     
    
    }

     分析ScopedProxyMode可以发现不同的参数值就对应了不同的代理类型。

    public enum ScopedProxyMode {
     
        /**
         * Default typically equals {@link #NO}, unless a different default
         * has been configured at the component-scan instruction level.
         */
        DEFAULT,
     
        /**
         * Do not create a scoped proxy.
         * <p>This proxy-mode is not typically useful when used with a
         * non-singleton scoped instance, which should favor the use of the
         * {@link #INTERFACES} or {@link #TARGET_CLASS} proxy-modes instead if it
         * is to be used as a dependency.
         */
        NO,
     
        /**
         * Create a JDK dynamic proxy implementing <i>all</i> interfaces exposed by
         * the class of the target object.
         */
        INTERFACES,
     
        /**
         * Create a class-based proxy (uses CGLIB).
         */
        TARGET_CLASS;
     
    }
  • 相关阅读:
    2017-2018-2 20179306 《网络攻防技术》第九周作业
    2017-2018-2 20179306 《网络攻防技术》第八周作业
    2017-2018-2 20179306《网络攻防技术》第七周作业
    2017-2018-2 20179306《网络攻防技术》第六周作业
    2017-2018-2 20179306《网络攻防技术》第五周作业
    jcFeather Maya 羽毛插件
    JCFeather 开源
    获取exr图片上像素点的颜色通道
    春天来了,看小夜游!
    jcFeather For Maya 2012免费版
  • 原文地址:https://www.cnblogs.com/nongzihong/p/12107341.html
Copyright © 2011-2022 走看看