dubbo迴圈依賴的解決
開發時遇到一個dubbo子系統之間迴圈呼叫的問題,糾結了好幾天,今天發現官網是這麼說的:
啟動時檢查
Dubbo預設會在啟動時檢查依賴的服務是否可用,不可用時會丟擲異常,阻止Spring初始化完成,以便上線時,能及早發現問題,預設check=true。 |
如果你的Spring容器是懶載入的,或者通過API程式設計延遲引用服務,請關閉check,否則服務臨時不可用時,會丟擲異常,拿到null引用,如果check=false,總是會返回引用,當服務恢復時,能自動連上。 |
可以通過check="false"關閉檢查,比如,測試時,有些服務不關心,或者出現了迴圈依賴,必須有一方先啟動。
關閉某個服務的啟動時檢查:(沒有提供者時報錯)
< dubbo:reference
interface = "com.foo.BarService"
check = "false"
/>
|
關閉所有服務的啟動時檢查:(沒有提供者時報錯)
< dubbo:consumer
check = "false"
/>
|
關閉註冊中心啟動時檢查:(註冊訂閱失敗時報錯)
< dubbo:registry
check = "false"
/>
|
也可以用dubbo.properties配置:
dubbo.properties
dubbo.reference.com.foo.BarService.check=false
dubbo.reference.check=false
dubbo.consumer.check=false
dubbo.registry.check=false
|
也可以用-D引數:
java
-Ddubbo.reference.com.foo.BarService.check=false
java
-Ddubbo.reference.check=false
java
-Ddubbo.consumer.check=false
java
-Ddubbo.registry.check=false |
注意區別
|
引用預設是延遲初始化的,只有引用被注入到其它Bean,或被getBean()獲取,才會初始化。
如果需要飢餓載入,即沒有人引用也立即生成動態代理,可以配置:
< dubbo:reference
interface = "com.foo.BarService"
init = "true"
/>
|
mark一下,以備後用。
相關推薦
dubbo迴圈依賴的解決
開發時遇到一個dubbo子系統之間迴圈呼叫的問題,糾結了好幾天,今天發現官網是這麼說的: 啟動時檢查 (+) (#) Dubbo預設會在啟動時檢查依賴的服務是否可用,不可用時會丟擲異常,阻止Spring初始化完成,以便上線時,能及早發現問題,預設check=
Spring Bean中迴圈依賴解決方案
在迴圈依賴是指在A中引用B,B中引用C,而C中引用A,容器建立物件時會出現死迴圈。相關解決方案如下: 1 選擇其一使其延遲載入,然後從上下文中獲取AService型別的bean即可。 現有AService 和BService,都在對方bean中注入,導致初始化時迴圈初始報錯,解決方案就是
SpringData JPA框架使用時出現JSON迴圈依賴解決方案
發現問題出在轉換JSON的環節,出現死迴圈,如下為解決方法 Book類上面放入 @JsonIgnoreProperties(ignoreUnknown = true, value = {"hibern
Spring Bean 迴圈依賴解決方案
由於service層互相呼叫,一下子沒有什麼好的拆分方案,所以先解決迴圈依賴問題。 現有AService 和BService,都在對方bean中注入,導致初始化時迴圈初始報錯,解決方案就是選擇其一使其延遲載入。 用配置方式只要將其一設定lazy-init,具
Spring之迴圈依賴解決
開發十年,就只剩下這套架構體系了! >>>
Spring中的迴圈依賴解決詳解
前言 說起Spring中迴圈依賴的解決辦法,相信很多園友們都或多或少的知道一些,但當真的要詳細說明的時候,可能又沒法一下將它講清楚。本文就試著儘自己所能,對此做出一個較詳細的解讀。另,需注意一點,下文中會出現類的例項化跟類的初始化兩個短語,為怕園友迷惑,
解決requirejs迴圈依賴問題
一.問題:A依賴B(即A引用B且呼叫B中的方法),B也依賴A,這即為迴圈依賴,那麼,當B呼叫A中的方法時,會發現A為undefined,這就是迴圈依賴導致的問題。 二.解決迴圈依賴的方法: 1.用scope模式傳參方式; 2.用pubsub解耦; 3.用require(“A”)的方式
Spring原始碼初探-IOC(4)-Bean的初始化-迴圈依賴的解決
前言 在實際工作中,經常由於設計不佳或者各種因素,導致類之間相互依賴。這些類可能單獨使用時不會出問題,但是在使用Spring進行管理的時候可能就會丟擲BeanCurrentlyInCreationException等異常 。當丟擲這種異常時表示Spring解決不了該迴圈依賴,本文將簡要說明Spr
老師,Spring 是怎麼解決迴圈依賴的?
前言 你可能會有如下問題: 1、想看Spring原始碼,但是不知道應當如何入手去看,對整個Bean的流程沒有概念,碰到相關問題也沒有頭緒如何下手 2、看過幾遍原始碼,沒辦法徹底理解,沒什麼感覺,沒過一陣子又忘了 本文將結合實際問題,由問題引出原始碼,並在解釋時會盡量以圖表的形式讓你一步
spring迴圈依賴是怎麼解決的?
spring中的迴圈依賴會有3種情況: 1.構造器迴圈依賴 構造器的迴圈依賴是不可以解決的,spring容器將每一個正在建立的bean識別符號放在一個當前建立bean池中,在建立的過程一直在裡面,如果在建立的過程中發現已經存在這個池裡面了,這時就會丟擲異常表示迴圈依賴了。 2.setter迴圈依賴
Spring構造注入迴圈依賴(BeanCreationException/BeanCurrentlyInCreationException)及其解決辦法
1.什麼是迴圈依賴 在說什麼是迴圈依賴之前,不妨使用程式碼,先丟擲這個異常,bug重現一下。 工程目錄如下: 注意: 本文中只需要一個配置檔案:spring.xml,兩個bean:User和Role
Spring-bean的迴圈依賴以及解決方式
版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/u010853261/article/details/77940767 本文主要是分析Spring bean的迴圈依賴,以及Spring的解決方式。 通過這種解決方式,我們
解決由於Idea/Java迴圈依賴造成的報錯
1.環境: Idea,Jrebel+Tomcat環境,Maven專案,分了模組。 2.報錯: 今天用熱部署的時候,jrebel重新編譯程式碼的時候出了一個錯誤:Error:java: Annotation processing is not supported for module cy
解決Maven專案相互依賴/迴圈依賴/雙向依賴的問題
很多時候隨著項目的膨脹,模塊會越來越多,如果設計上 稍有不慎就會出現模塊之間相互依賴的情況。這對於使用Maven的用戶是比較痛苦的,因為出現模塊之
解決eclipse專案編譯不成功-迴圈依賴的問題
迴圈依賴,指的是多個專案之間相互引用,導致專案之間存在迴圈引用。Ecplise預設編譯器檢測到迴圈依賴的專案是不會被編譯的。所以一定要將迴圈依賴設定為警告,讓專案順利編譯通過。 如何發現編譯不通過? 通過兩個方面可以發現專案是否編譯通過:1、查詢project檢視中專案圖示,如果專案圖示上有紅色
(一)Spring IoC原始碼-3.其他特性的實現原理-02迴圈依賴的解決
引言:迴圈依賴就是N個類中迴圈巢狀引用,如果在日常開發中我們用new 物件的方式發生這種迴圈依賴的話程式會在執行時一直迴圈呼叫,直至記憶體溢位報錯。下面說一下Spring是如果解決迴圈依賴的。 第一種:構造器引數迴圈依賴 Spring容器會將每一個正
Spring原始碼解析-6、spring單例如何解決迴圈依賴
什麼叫迴圈依賴 迴圈依賴即兩個及以上的bean物件互相持有對方的引用,最終形成一個閉環。 spring如何處理正在建立的Bean Spring容器會將每一個正在建立的Bean 識別符號放在一個“當前建立Bean池”中,Bean識別符號在建立過程中將一直保持 在這個池中,因此如果在
Spring 依賴注入三種方式的實現,及迴圈依賴問題的解決(原始碼+XML配置)
搬磚啦,搬磚啦,這幾天在看Spring相關的書,下面給大家分享一下這幾天的心得與收穫,Go Go Go! Spring支援兩種依賴注入方式,分別是屬性注入,建構函式注入。除此之外,Spring還支援工廠注入方式。 接下來,我們一起來了解一下Spring的幾種注入方式。
解決maven模組迴圈依賴的問題
隨著項目的不斷的堆業務脹,模塊會越來越多,如果設計上 稍有不慎就會出現模塊之
spring 解決迴圈依賴
在看面試題的時候突然想到spring 是怎麼解決相互依賴的問題的?模糊不清,趕緊記錄下來。 一定要將bean的例項化(beanF