Error creating bean with name 'XXX': Bean with name 'senseOneToSomeFeignImpl' has been injected into other beans [XXXXXX] in its raw version as part of a circular reference

关于Spring框架中的循环依赖问题,您可以尝试以下几种方法来解决:

  1. 重新定义Bean依赖:重构代码以消除循环依赖。这可能涉及重新设计类,使它们不相互依赖即可运行。
  2. 使用Setter注入:与构造函数注入相比,使用setter注入。Spring可以更好地处理setter注入的循环依赖,因为对象引用是在对象构造之后设置的。
  3. 实现InitializingBean接口 :如果您需要在所有依赖项注入后执行初始化,可以让您的bean实现InitializingBean接口,并重写afterPropertiesSet()方法。
  4. 延迟初始化:将其中一个bean标记为延迟。这意味着该bean将在首次访问时才初始化,而不是在启动时。
  5. 使用@PostConstruct注解 :对于需要在依赖注入完成后执行的方法,使用@PostConstruct注解进行任何初始化。

在Spring框架中设置延迟初始化,您可以通过以下几种方法:

在Spring框架中设置延迟初始化,您可以通过以下几种方法:

  1. 全局延迟初始化:

    • 在application.yml配置文件中设置:

      yaml 复制代码
      spring:
        main:
          lazy-initialization: true
    • 或者,在application.properties文件中设置:

      properties 复制代码
      spring.main.lazy-initialization=true
  2. 局部延迟初始化:

    • 在需要延迟初始化的@Component类上添加@Lazy注解:

      java 复制代码
      @Lazy
      @Component
      public class YourClass {
        // ...
      }
    • 在@Configuration类中配置@Bean时添加@Lazy注解:

      java 复制代码
      @Configuration
      public class YourConfig {
        @Lazy
        @Bean
        public YourClass yourClass() {
          return new YourClass();
        }
        // ...
      }
    • 使用@ComponentScan配置时,设置lazyInit为true:

      java 复制代码
      @ComponentScan(value = "your.package", lazyInit = true)
      @Configuration
      public class YourConfig {
        // ...
      }
    • 在XML配置文件中,直接在<bean>标签上设置lazy-init属性为true:

      xml 复制代码
      <bean id="yourBean" class="your.package.YourClass" lazy-init="true"/>

选择适合您应用程序需求的方法进行配置。如果您有任何疑问或需要进一步的帮助,请随时告诉我。🌟

(1) Spring Boot 2中的延迟初始化 - CSDN博客. https://blog.csdn.net/niugang0920/article/details/116696506.

(2) Spring--延迟加载(@Lazy注解等)--使用/原理-CSDN博客. https://blog.csdn.net/feiying0canglang/article/details/120468261.

(3) springboot延迟加载 - 掘金. https://juejin.cn/post/7114861324164661284.

(4) spring3: 延迟初始化Bean - 穆晟铭 - 博客园. https://www.cnblogs.com/achengmu/p/8422174.html.

相关推荐
驭渊的小故事1 天前
Spring AOP 核心概念与通知类型详解
java·后端·spring
驭渊的小故事1 天前
Spring AOP 入门:从 AOP 概念到第一个耗时统计切面
java·后端·spring
CoderYanger1 天前
Java EE 进阶:8.MyBatis 操作数据库(入门)(第二弹)
java·数据库·spring boot·spring·面试·java-ee·mybatis
CQU_JIAKE1 天前
11.7[高体】
java·后端·spring
露天赏雪3 天前
第3篇:Sentinel熔断降级实战:大模型接口抖动时的服务兜底方案
java·开发语言·人工智能·spring boot·spring·servlet·sentinel
captain3763 天前
▲统一功能——DispatcherServlet源码分析
java·spring·java-ee·log4j·maven
TeamDev3 天前
使用 JxBrowser 在桌面应用中集成 Spring
java·前端·后端·spring·混合应用·jxbrowser·浏览器控件
SL_staff4 天前
从配置失效到逻辑复用:JVS-Logic 如何构建可治理的业务编排中枢
java·spring·产品
程序员吕洞宾4 天前
开源多维表格SmartTable v1.6.10 —— 用户名登录、数据评论及@人、表单分享二维码、性能优化、部署及升级优化
spring·性能优化·开源
liangbo74 天前
Spring系列03:Bean 的三种注册方式
java·spring