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;
     
    }
  • 相关阅读:
    day10函数嵌套
    day 9
    day 8函数
    day7预习
    合唱队形(解题思维的锻炼)
    Cow Exhibition (背包中的负数问题)
    Investment(完全背包)
    Cash Machine(多重背包二进制转换)
    Milking Time(DP)
    Brackets Sequence(升级版)
  • 原文地址:https://www.cnblogs.com/nongzihong/p/12107341.html
Copyright © 2011-2022 走看看