亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

spring循環注入異常問題的解決方案

2024-07-14 08:43:08
字體:
來源:轉載
供稿:網友

今天在做項目的時候突然遇到一個問題:啟動服務器的時候spring沒報錯,可是當我訪問某個頁面的時候spring報Request bean is currently in creation: is there an unresolvable circular reference的錯誤,后來查了些資源終于找出來了原因,這里和大家分享一下;

首先產生這個錯誤的原因是因為spring循環注入了,什么是循環注入?舉個列子我有一個類A,A有一個構造器里面的參數是類B,然后類B里面有個構造器參數是類C,類C里面有個構造器參數是類A,就是我們會發現其實引用循環了A 里面有B的引用,B里面有C的引用,C里面又有A的引用。

循環依賴又分為構造器循環依賴和set循環依賴:

首先講一下構造器的循環依賴:

public class A{  public A(B b)  {  }}
public class B{  public B(C c)  {  }}

 

public class C{  public C(A a)  {  }}

當我們用spring來加載A的時候spring的流程是這樣的:

1:spring創建A首先去當前創建池中去查找當前A是否在創建,如果發明沒有創建則準備其構造器需要的參數B,然后把創建A的標識放入當前創建池中。

2:spring創建B首先去當前創建池中去查找當前B是否在創建,如果發現沒有創建則準備其構造器需要的參數C,然后把創建B的標識放入當前創建池中。

3:spring創建C首先去當前創建池中去查找當前C是否在創建,如果發現沒有創建則準備其構造器需要的參數A,然后把創建C的標識放入當前創建池中。

4:spring創建C需要的A,這個時候會發現在當前創建池中已經有A的標識,A正在創建中則拋出BeanCurrentlyInCreationException。

構造器的循環注入是沒有辦法解決的,所以只能我們避免.

接下來看下set方式的循環注入:

set方式的循環注入分2種情況,第一種情況是可以解決的循環注入就是單列情況下。第二種情況就是無法解決的循環注入就是多列情況下,下面分析一下原因:

先看第一種情況,還是拿上面的ABC3個類來說明問題,只不過這次不是構造器里面的參數,而是換成他們的成員變量,然后通過set方式類注入,這里代碼就不寫了直接講下:

單列下set方式的注入流程是這樣的:

1:spring創建A,首先根據其無參構造器創建一個對象A,然后提前暴露出創建出來的這個A對象,然后再當前的創建池中放入創建A的標識,然后進行set方法注入B。

2:spring創建B,首先根據其無參構造器創建一個對象B,然后提前暴露出創建出來的這個B對象,然后在當前的創建池中放入創建B的標識,然后進行set方法的注入C。

3:spring創建C,首先根據其無參構造器創建一個對象C,然后提前暴露出創建處理的這個C對象,然后在當前的創建池中放入創建C的標識,然后進行set方法的注入A。

4:在第三步注入A的時候由于提前暴露出來了創建出來的A對象所以不會報BeanCurrentlyInCreationException的錯誤。

多列下set方式的循環注入不能解決的原因是在多列的情況下,當創建對象的時候spring不會提前暴露創建處理的對象A,這樣的話則會和構造器循環注入出現一樣的情況最終導致報錯。

解決辦法:

去掉最后一層的注入或者中間某一層的注入。通過spring getBean的方式去獲取對象

講完了。講的不對的地方謝謝提出來。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久欧美精品| 91免费视频国产| 亚洲黄色av女优在线观看| 日韩欧美aⅴ综合网站发布| 亚洲一区二区久久久久久久| 少妇高潮久久77777| 日韩a**站在线观看| 久久久国产精彩视频美女艺术照福利| 日韩在线视频观看正片免费网站| 97视频免费在线观看| 91免费人成网站在线观看18| 欧美专区福利在线| 国产精品中文字幕在线观看| 欧美精品videofree1080p| 国产精品一二三视频| 欧美日韩激情网| 国产91精品不卡视频| 中文字幕精品影院| 精品国产一区二区三区久久狼黑人| 精品国产精品三级精品av网址| 日韩欧美精品在线观看| 亚洲网址你懂得| 国产成人综合av| 日韩不卡在线观看| 欧美性猛交99久久久久99按摩| 国产精品久久久久77777| 国产精品视频在线观看| 欧美精品少妇videofree| 日韩有码视频在线| 欧美最猛性xxxxx(亚洲精品)| 亚洲视频在线观看| 日韩在线观看网站| 亚洲第一精品电影| 亚洲欧美资源在线| 亚洲a区在线视频| 久久久精品亚洲| 色偷偷9999www| 国产亚洲精品久久久久久牛牛| 国产亚洲美女久久| 91在线色戒在线| 久久久久北条麻妃免费看| 午夜精品99久久免费| 亚洲老司机av| 日本午夜精品理论片a级appf发布| 久久av资源网站| 国产精品流白浆视频| 国产精品a久久久久久| 亚洲欧美中文字幕在线一区| 色狠狠久久aa北条麻妃| 亚洲欧美一区二区三区情侣bbw| 国产精品777| 欧美日韩亚洲系列| 久久久久久有精品国产| 一本一本久久a久久精品牛牛影视| 中文字幕在线看视频国产欧美在线看完整| 国产亚洲欧美aaaa| 久久6免费高清热精品| 欧美性xxxxx| 国产男人精品视频| 欧美日韩亚洲91| 亚洲aⅴ日韩av电影在线观看| 日韩精品欧美国产精品忘忧草| 91色琪琪电影亚洲精品久久| 91精品国产综合久久香蕉| 日韩中文字幕在线免费观看| 精品国产成人av| 91免费人成网站在线观看18| 精品二区三区线观看| 91精品国产自产在线老师啪| 欧美国产亚洲视频| 日韩电影大全免费观看2023年上| 亚洲а∨天堂久久精品9966| 欧美精品一区二区免费| 国产综合久久久久| 69视频在线播放| 色综合视频一区中文字幕| 综合av色偷偷网| 91久久综合亚洲鲁鲁五月天| 成人精品一区二区三区电影黑人| 在线观看国产精品日韩av| 欧美丰满少妇xxxxx做受| 国产精品免费电影| 成人免费观看a| 国产一区二区三区在线观看视频| 欧美怡春院一区二区三区| 亚洲国产精品字幕| 国自产精品手机在线观看视频| 国产成人免费91av在线| 日韩精品极品在线观看播放免费视频| 一区二区三区四区精品| 在线电影av不卡网址| 成人黄色在线观看| 亚洲第一区第一页| 欧美激情在线播放| 日韩极品精品视频免费观看| 91精品久久久久久久久久| 亚洲综合社区网| 国产亚洲美女精品久久久| 亚洲伦理中文字幕| 欧美大全免费观看电视剧大泉洋| 黄色一区二区三区| 日韩美女主播视频| 久久人体大胆视频| 亚洲人午夜色婷婷| 日韩av电影在线免费播放| 欧美亚洲国产视频| 亚洲午夜精品久久久久久性色| 成人免费看黄网站| 日韩视频在线一区| 久久精品视频在线观看| 欧美老女人在线视频| 国产z一区二区三区| 成人激情视频在线播放| 国产精品免费网站| 日韩视频―中文字幕| 欧美怡春院一区二区三区| 国产精品久久精品| 国产精品美女视频网站| 国产999精品久久久| 欧美成人久久久| 欧美激情一二区| 欧美日韩999| 狠狠久久五月精品中文字幕| 亚洲精品资源在线| 国产亚洲人成a一在线v站| 91网站免费看| 亚洲视频在线观看网站| 中文字幕欧美精品在线| 日本欧美国产在线| 日韩av免费看| 丝袜亚洲欧美日韩综合| 精品国偷自产在线| 欧美性猛交xxxx乱大交极品| 久久久久九九九九| 精品久久久久久中文字幕一区奶水| 亚洲在线免费视频| 91亚洲国产精品| 国产高清视频一区三区| 国产精品久久久久久久美男| 欧美精品情趣视频| 成人久久一区二区| 色吧影院999| 午夜精品久久久久久久白皮肤| 欧洲亚洲女同hd| 欧美性xxxx极品高清hd直播| 国产91在线播放精品91| 亚洲九九九在线观看| 日韩中文字幕不卡视频| 97久久精品人人澡人人爽缅北| 国产精品久久久久久中文字| 日韩精品视频在线| 97在线观看免费| 亚洲国产精品va在线看黑人动漫| 亚洲电影免费观看高清完整版在线观看| 美女久久久久久久久久久| 91国产高清在线| 亚洲美女av在线播放| 91精品国产高清久久久久久91| 亚洲性xxxx| 亚洲成人精品在线| 亚洲精品国产精品乱码不99按摩| 国产精品久久久久久久7电影| 日韩电影网在线| 亚洲一区久久久|