欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot啟動報錯屬性循環(huán)依賴報錯問題的解決

 更新時間:2023年05月19日 11:14:17   作者:Android_la  
這篇文章主要介紹了SpringBoot啟動報錯屬性循環(huán)依賴報錯問題的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

SpringBoot啟動報錯屬性循環(huán)依賴報錯

問題背景

SpringBoot項目啟動報錯。報錯提示為某個類的A屬性與B屬性循環(huán)有依賴了。

前言:SpringBoot啟動過程中是默認支持循環(huán)依賴(即A類中有B屬性,B類中有A屬性),筆者還不清楚為什么會發(fā)生循環(huán)依賴報錯。

代碼場景

發(fā)生報錯的代碼場景如下所示:

public class X {
? ? @Autowrie
? ? private A a;
? ? @Autowrie
? ? private B b;
}
public class A {
? ? private B b;
}
public class B {
? ? private A a;
}

解決方案

有2種解決方案

懶加載注入

方案一是使用@Lazy懶加載,代碼如下:

public class X {
? ? @Lazy
? ? @Autowrie
? ? private A a;
? ? @Autowrie
? ? private B b;
}

set方法注入

方案二是使用set方法,代碼如下:

public class X {
? ? private A a;
? ? @Autowrite
? ? public void setA(A a) {
? ? ? ? this.a = a;
? ? }
? ? @Autowrie
? ? private B b;
}

SpringBoot循環(huán)依賴報錯解決The dependencies of some of the beans in the application context form a cycle

循環(huán)依賴:

循環(huán)依賴就是循環(huán)引用,也就是兩個或則兩個以上的bean互相依賴對方,形成閉環(huán)。比如A類中有B屬性,B類中有A屬性

報錯信息

The dependencies of some of the beans in the application context form a cycle:

解決方案

1、修改配置文件

根據(jù)Action中的提示

Action:
 
Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true.

不鼓勵依賴循環(huán)引用,默認情況下禁止循環(huán)引用。更新應用程序以刪除 Bean 之間的依賴關系循環(huán)。作為最后的手段,可以通過將 spring.main.allow-circular-references 設置為 true 來自動打破循環(huán)。因此可以在yml配置文件中設置來打破循環(huán)依賴

修改yml

spring:
    main:
        allow-circular-references: true

2、添加注解,延遲加載

這個是網上找到的解決方案,經過測試,問題順利解決

由于在循環(huán)依賴中,Spring在初始化的時候不知道先加載哪個bean,因此可以通過使用@Lazy注解,放在其中一個bean上,讓這個bean延遲加載,另一個bean就會先加載,進而解決循環(huán)依賴問題

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • PowerJob的UserService工作流程源碼解讀

    PowerJob的UserService工作流程源碼解讀

    這篇文章主要介紹了PowerJob的UserService工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • 淺談mybatis-plus批量保存異常及效率優(yōu)化

    淺談mybatis-plus批量保存異常及效率優(yōu)化

    本文主要介紹了mybatis-plus批量保存異常及效率優(yōu)化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-01-01
  • 如何使用stream從List對象中獲取某列數(shù)據(jù)

    如何使用stream從List對象中獲取某列數(shù)據(jù)

    這篇文章主要介紹了如何使用stream從List對象中獲取某列數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • MapStruct表達式應用及避坑詳解

    MapStruct表達式應用及避坑詳解

    一不小心踩了MapStruct表達式的坑,發(fā)現(xiàn)了一個在官方文檔上都找不到的功能,有必要記錄下。MapStruct是一個代碼生成器,它基于約定優(yōu)于配置的方法大大簡化了Java?Bean類型之間的映射的實現(xiàn)
    2022-02-02
  • Java字符串替換函數(shù)replace()用法解析

    Java字符串替換函數(shù)replace()用法解析

    這篇文章主要介紹了Java字符串替換函數(shù)replace()用法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • springCloud服務注冊Eureka實現(xiàn)過程圖解

    springCloud服務注冊Eureka實現(xiàn)過程圖解

    這篇文章主要介紹了springCloud服務注冊Eureka實現(xiàn)過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Java Shutdown Hook場景使用及源碼分析

    Java Shutdown Hook場景使用及源碼分析

    shutdown hook 就是一個簡單的已初始化但是未啟動的線程,本文詳細的介紹了Java Shutdown Hook場景使用及源碼分析,感興趣的朋友可以參考一下
    2021-06-06
  • SpringCloud超詳細講解微服務網關Zuul

    SpringCloud超詳細講解微服務網關Zuul

    這篇文章主要介紹了SpringCloud Zuul微服務網關,負載均衡,熔斷和限流,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • intelij?idea?2023創(chuàng)建java?web項目的完整步驟

    intelij?idea?2023創(chuàng)建java?web項目的完整步驟

    這篇文章主要給大家介紹了關于intelij?idea?2023創(chuàng)建java?web項目的完整步驟,該教學主要針對各位剛剛接觸javaweb開發(fā)的小伙伴,各位學習java的朋友也難免會經歷這個階段,需要的朋友可以參考下
    2023-10-10
  • Java時區(qū)轉換及Date類實現(xiàn)原理解析

    Java時區(qū)轉換及Date類實現(xiàn)原理解析

    這篇文章主要介紹了Java時區(qū)轉換及Date類實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11

最新評論