国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

springboot升級(jí)出現(xiàn)循環(huán)依賴問題

這篇具有很好參考價(jià)值的文章主要介紹了springboot升級(jí)出現(xiàn)循環(huán)依賴問題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

背景

問題從spring boot 2.3.12升級(jí)到2.6.15版本后,項(xiàng)目啟動(dòng)后訪問報(bào)錯(cuò).

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

serviceCollectionIdCacheService

┌─────┐

| serviceProductInfoProviderImpl

↑ ↓

| serviceOfflineProviderImpl

↑ ↓

| serviceProductMappingProviderImpl

└─────┘

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.

原因

在2.6.0之前,spring會(huì)自動(dòng)處理循環(huán)依賴的問題,2.6.0 以后的版本默認(rèn)禁止 Bean 之間的循環(huán)引用,如果存在循環(huán)引用就會(huì)啟動(dòng)失敗報(bào)錯(cuò)。

解決

方案1

清理循環(huán)引用的Bean

1、在字段上使用@Autowired注解,讓Spring決定在合適的時(shí)機(jī)注入。

2、在@Autowired注解上方加上@Lazy注解(延遲加載)

(A—>B—>C—>D 一般在D引用A的@Autowired下加入@Lazy注解即可)

方案2

it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true.

也可以暫時(shí)跳過,在yml配置中加入

spring:
  main:
    allow-circular-references: true

方案3

在啟動(dòng)中加入也一樣

public static void main(String[] args) {
  SpringApplication sa = new SpringApplication(xx.class);
  sa.setAllowCircularReferences(Boolean.TRUE);//加入的參數(shù)
  sa.run(args);
}

本人采用了方案3來解決問題。文章來源地址http://www.zghlxwxcb.cn/news/detail-608820.html

到了這里,關(guān)于springboot升級(jí)出現(xiàn)循環(huán)依賴問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring怎么解決循環(huán)依賴問題?

    Spring怎么解決循環(huán)依賴問題?

    循環(huán)依賴是指 一個(gè)或多個(gè)對(duì)象之間存在直接或間接的依賴關(guān)系,這種依賴關(guān)系構(gòu)成一個(gè)環(huán)形調(diào)用 , 舉個(gè)例子 : A 依賴B , B依賴C , C依賴A , 這樣就形成了循環(huán)依賴; ? ①構(gòu)造器的循環(huán)依賴:這種依賴spring是處理不了的,直接拋出BeanCurrentlyInCreationException異常。 ②單例模式下的se

    2024年02月08日
    瀏覽(24)
  • Spring 是如何解決循環(huán)依賴問題的?

    Spring 是如何解決循環(huán)依賴問題的?

    提示:這里簡述項(xiàng)目相關(guān)背景: 例如:項(xiàng)目場景:示例:通過藍(lán)牙芯片(HC-05)與手機(jī) APP 通信,每隔 5s 傳輸一批傳感器數(shù)據(jù)(不是很大) ????????我們都知道,如果在代碼中,將 兩個(gè)或多個(gè) Bean 互相之間持有對(duì)方的引用 就會(huì)發(fā)生循環(huán)依賴。循環(huán)的依賴將會(huì)導(dǎo)致注入死循環(huán),這

    2024年02月13日
    瀏覽(23)
  • (循環(huán)依賴問題)學(xué)習(xí)spring的第九天

    (循環(huán)依賴問題)學(xué)習(xí)spring的第九天

    ?Bean實(shí)例的屬性填充 ?Spring在屬性注入時(shí) , 分為如下幾種情況 : 注入單向?qū)ο笠?: 如usersevice里注入userdao , userdao里沒有注入其他屬性 ?? ?注入雙向?qū)ο笠?: 如usersevice里注入userdao , userdao也注入usersevice屬性? (搞清原理即可) 問題提出 : 形成死循環(huán) 解決問題 : 三級(jí)緩存解決

    2024年01月22日
    瀏覽(20)
  • 詳細(xì)解釋一下Spring是如何解決循環(huán)依賴問題的

    詳細(xì)解釋一下Spring是如何解決循環(huán)依賴問題的

    我們都知道,如果在代碼中,將 兩個(gè)或多個(gè)Bean互相之間持有對(duì)方的引用就會(huì)發(fā)生循環(huán)依賴。循環(huán)的依賴將會(huì)導(dǎo)致注入死循環(huán) ,這是Spring發(fā)生循環(huán)依賴的原因 1. 互相依賴: A依賴B , B依賴A , 他們之間形成了循環(huán)依賴 2. 間接依賴: A依賴B ,B依賴C , C又依賴A,形成了循環(huán)依

    2024年02月09日
    瀏覽(24)
  • Mr. Cappuccino的第64杯咖啡——Spring循環(huán)依賴問題

    Mr. Cappuccino的第64杯咖啡——Spring循環(huán)依賴問題

    多個(gè)bean之間相互依賴,形成了一個(gè)閉環(huán)。 比如:A依賴于B、B依賴于C、C依賴于A 通常來說,如果問Spring容器內(nèi)部如何解決循環(huán)依賴問題,一定是指默認(rèn)的單例Bean中,屬性相互引用的場景。也就是說,Spring的循環(huán)依賴,是Spring容器注入時(shí)出現(xiàn)的問題。 示例 項(xiàng)目結(jié)構(gòu) 項(xiàng)目代碼

    2024年02月11日
    瀏覽(24)
  • 【SpringBoot】Spring Boot 單體應(yīng)用升級(jí) Spring Cloud 微服務(wù)

    Spring Cloud 是在 Spring Boot 之上構(gòu)建的一套微服務(wù)生態(tài)體系,包括服務(wù)發(fā)現(xiàn)、配置中心、限流降級(jí)、分布式事務(wù)、異步消息等,因此通過增加依賴、注解等簡單的四步即可完成 Spring Boot 應(yīng)用到 Spring Cloud 升級(jí)。 Spring Boot 應(yīng)用升級(jí)為 Spring Cloud Cloud Native 以下是應(yīng)用升級(jí) Spring Clou

    2024年02月02日
    瀏覽(16)
  • 解決Spring Boot單元測試中@Autowired依賴注入失效的問題

    本文介紹了在Spring Boot單元測試中使用@Autowired注入的方法中,由于使用反射導(dǎo)致依賴注入失效的問題,以及如何使用AutowiredAnnotationBeanPostProcessor手動(dòng)處理依賴注入來解決這個(gè)問題。 在Spring Boot的單元測試中,我們經(jīng)常使用@Autowired注解來自動(dòng)注入需要測試的對(duì)象或依賴。然而,

    2024年02月03日
    瀏覽(25)
  • spring工程的啟動(dòng)流程?bean的生命周期?提供哪些擴(kuò)展點(diǎn)?管理事務(wù)?解決循環(huán)依賴問題的?事務(wù)傳播行為有哪些?

    spring工程的啟動(dòng)流程?bean的生命周期?提供哪些擴(kuò)展點(diǎn)?管理事務(wù)?解決循環(huán)依賴問題的?事務(wù)傳播行為有哪些?

    Spring工程的啟動(dòng)流程主要包括以下幾個(gè)步驟: 加載配置文件:Spring會(huì)讀取配置文件(如XML配置文件或注解配置)來獲取應(yīng)用程序的配置信息。 實(shí)例化并初始化IoC容器:Spring會(huì)創(chuàng)建并初始化IoC容器,即ApplicationContext。在這一步,Spring會(huì)解析配置文件,并將配置的Bean實(shí)例化。

    2024年02月12日
    瀏覽(32)
  • spring 的循環(huán)依賴以及spring為什么要用三級(jí)緩存解決循環(huán)依賴

    spring 的循環(huán)依賴以及spring為什么要用三級(jí)緩存解決循環(huán)依賴

    ??????? bean的生命周期 ??????? 這里簡單過一下 class -無參構(gòu)造 -普通對(duì)象 -依賴注入(對(duì)加了autowire等的屬性賦值) -初始化前-初始化 -初始化后(aop) -放入單例池的map(一級(jí)緩存) -bean對(duì)象 這里提一點(diǎn)單例bean單例bean 其實(shí)就是用mapbeanName,Bean對(duì)象創(chuàng)建的,多例bean就不

    2024年02月15日
    瀏覽(24)
  • 微服務(wù) Spring Cloud 2021 Spring Boot 2.7.x Java JDK8升級(jí)到JDK17研究

    微服務(wù) Spring Cloud 2021 Spring Boot 2.7.x Java JDK8升級(jí)到JDK17研究

    項(xiàng)目正在使用jdk8 如果要升級(jí)到j(luò)dk17 則需要升級(jí)springboot版本及springcloud版本 (springcloud版本和springboot版本必須匹配 要一塊升級(jí)) 。目前使用的版本如下: spring boot 版本為 2.1.5.RELEASE spring cloud 版本為 Greenwich.SR2 spring 版本為 5.1.7.RELEASE jdk 由 8 升級(jí)到 17 spring boot 由 2.1.5.RELEASE

    2024年02月01日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包