亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

springboot相互依賴 server相互引用方式

 更新時間:2022年02月26日 09:37:43   作者:玖煦  
這篇文章主要介紹了springboot相互依賴 server相互引用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

springboot相互依賴 server相互引用

public class RoleService{
	@Autowired @Lazy
	private UserServer userServer;
}
public class UserService{
	@Autowired @Lazy
	private RoleService roleService;
}

spring解決相互依賴的問題

構(gòu)造器循環(huán)依賴

@Service
public class A {??????
public A(B b) {? }
?}
@Service
public class B {
????? public C (C c) {? }
}?
@Service
public class C {
????? public A (A a) {? }
}

通過構(gòu)造器注入構(gòu)成的循環(huán)依賴,此依賴是無法解決的,只能拋出BeanCurrentlyInCreationException異常表示循環(huán)依賴

描述:創(chuàng)建A類是,構(gòu)造器需要B類,那將去創(chuàng)建B,在創(chuàng)建B時又發(fā)現(xiàn)需要A類,則又去創(chuàng)建C類,最終在創(chuàng)建C時發(fā)現(xiàn)又需要A,從而形成一個環(huán),沒辦法創(chuàng)建。

原理:Spring容器將每一個正在創(chuàng)建的bean標(biāo)識符放在一個“當(dāng)前創(chuàng)建bean池”中,bean標(biāo)識符創(chuàng)建過程中將一直保持在這個池中,因為如果在創(chuàng)建bean過程中發(fā)現(xiàn)自己已經(jīng)在“當(dāng)前創(chuàng)建bean池”中時,將會拋出BeanCurrentlyInCreationException異常表示循環(huán)依賴;而對于創(chuàng)建完畢的bean將從“當(dāng)前創(chuàng)建bean池”中清除掉。

setter循環(huán)依賴

@Service
public class A1 {??????
@Autowired??????
private B1 b1; }?
@Service
public class B1 {??????
@Autowired??????
public C1 c1;
}?
@Service
public class C1 {??????
@Autowired?
public A1 a1;
?}

通過setter注入方式構(gòu)成的循環(huán)依賴。

原理:對于setter注入造成的依賴是通過Spring容器提前暴露剛完成構(gòu)造器注入但未完成其他步驟(比如setter注入)的bean來完成的,而且只能解決單例作用域的bean循環(huán)依賴。

field屬性注入循環(huán)依賴(prototype)

@Service @Scope("prototype") public class A1 {?????? 
@Autowired?????? 
private B1 b1; }? 
@Service @Scope("prototype") 
public class B1 {?????? 
@Autowired?????? 
public C1 c1; }? 
@Service @Scope("prototype") public class C1 {?? ???
?@Autowired? 
public A1 a1; }

報錯

小結(jié)一下

Spring只能解決Setter方法注入的單例bean之間的循環(huán)依賴

ClassA依賴ClassB,ClassB又依賴ClassA,形成依賴閉環(huán)。Spring在獲取ClassA的實例時,不等ClassA完成創(chuàng)建就將其曝光加入正在創(chuàng)建的bean緩存中。在解析ClassA的屬性時,又發(fā)現(xiàn)依賴于ClassB,再次去獲取

ClassB,當(dāng)解析ClassB的屬性時,又發(fā)現(xiàn)需要ClassA的屬性,但此時的ClassA已經(jīng)被提前曝光加入了正在創(chuàng)建的bean的緩存中,則無需創(chuàng)建新的的ClassA的實例,直接從緩存中獲取即可。從而解決循環(huán)依賴問題。

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

相關(guān)文章

  • spring boot使用WebClient調(diào)用HTTP服務(wù)代碼示例

    spring boot使用WebClient調(diào)用HTTP服務(wù)代碼示例

    這篇文章主要介紹了spring boot使用WebClient調(diào)用HTTP服務(wù)代碼示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • java防反編譯最簡單的技巧分享

    java防反編譯最簡單的技巧分享

    這篇文章主要給大家分享了關(guān)于java防反編譯最簡單的技巧,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • Spring常用注解及http數(shù)據(jù)轉(zhuǎn)換教程

    Spring常用注解及http數(shù)據(jù)轉(zhuǎn)換教程

    這篇文章主要為大家介紹了Spring常用注解及http數(shù)據(jù)轉(zhuǎn)換原理以及接收復(fù)雜嵌套對象參數(shù)與Http數(shù)據(jù)轉(zhuǎn)換的原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • SpringBoot 中實現(xiàn)跨域的5種方式小結(jié)

    SpringBoot 中實現(xiàn)跨域的5種方式小結(jié)

    這篇文章主要介紹了SpringBoot 中實現(xiàn)跨域的5種方式小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Java IO流之字節(jié)輸入流的使用詳解

    Java IO流之字節(jié)輸入流的使用詳解

    這篇文章主要為大家詳細介紹了Java IO流中字節(jié)輸入流的使用,文中的示例代碼講解詳細,對我們學(xué)習(xí)Java有一定的幫助,需要的可以參考一下
    2022-08-08
  • Java 內(nèi)部類的定義與范例

    Java 內(nèi)部類的定義與范例

    說起內(nèi)部類這個詞,想必很多人都不陌生,但是又會覺得不熟悉。原因是平時編寫代碼時可能用到的場景不多,用得最多的是在有事件監(jiān)聽的情況下,并且即使用到也很少去總結(jié)內(nèi)部類的用法。今天我們就來一探究竟
    2021-11-11
  • java實現(xiàn)在普通類中注入service或mapper

    java實現(xiàn)在普通類中注入service或mapper

    這篇文章主要介紹了java實現(xiàn)在普通類中注入service或mapper的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java集合和數(shù)組的區(qū)別

    Java集合和數(shù)組的區(qū)別

    本文主要介紹了Java集合和數(shù)組的區(qū)別。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • 詳解mybatis.generator配上最新的mysql 8.0.11的一些坑

    詳解mybatis.generator配上最新的mysql 8.0.11的一些坑

    這篇文章主要介紹了詳解mybatis.generator配上最新的mysql 8.0.11的一些坑,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • SpringBoot之如何指定配置文件啟動

    SpringBoot之如何指定配置文件啟動

    這篇文章主要介紹了SpringBoot之如何指定配置文件啟動問題,具有很好的參考價值,希望對大家有所幫助。
    2023-04-04

最新評論