Spring迴圈依賴問題修復
阿新 • • 發佈:2018-12-08
拆分的時候,把錯誤都處理完後,準備把工程起起來,發現彈簧的迴圈依賴問題。具體問題如下
Bean with name 'userManager' has been injected into other beans [daoAuthenticationProvider] in its raw version as part of a circular reference, but has eventually been wrapped (for example as part of auto-proxy creation). This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesOfType' with the 'allowEagerInit' flag turned off, for example.
1.懷疑配置檔案的問題
但是在原工程中並沒有這個問題,所以一開始懷疑是配置檔案的配置不一樣,百度了一下這個錯誤
beanFactory.setAllowRawInjectionDespiteWrapping(true);
看網上說這個配置了,對於迴圈依賴的這個錯誤就會解決掉。但是在兩個工程裡搜尋了一下都沒有發現這個配置過。
於是只能除錯進去看看
2.調查檢視分析
2.1 spring引用的bean和注入的bean不一致導致的這個錯誤
由於在原工程裡是可以迴圈引用的,所以對工程和新工程都在初始化這兩個迴圈引用的位置進行了除錯
然後發現最後兩邊走的邏輯不一樣的在以下的程式碼裡: