Spring解決循環(huán)依賴的方法主要有兩種:
構(gòu)造器注入:使用構(gòu)造器注入代替屬性注入可以解決循環(huán)依賴的問題。當(dāng)兩個Bean相互依賴時,Spring會先創(chuàng)建其中一個Bean并將另一個Bean的引用作為構(gòu)造器參數(shù)傳入,從而避免循環(huán)依賴。
使用@Lazy注解:通過在Bean的定義上加上@Lazy注解,告訴Spring容器在需要時才去實例化Bean,而不是在容器啟動時就創(chuàng)建所有Bean。這樣可以延遲依賴的注入,從而避免循環(huán)依賴的問題。