Spring通過@Lazy解決構(gòu)造方法形式的循環(huán)依賴問題
更新時間:2023年10月06日 09:32:56 作者:amadeus_liu2
這篇文章主要給大家介紹了Spring如何通過@Lazy解決構(gòu)造方法形式的循環(huán)依賴問題,文中有詳細的代碼示例,對大家的學習活工作有一定的幫助,具有一定的參考價值,需要的朋友可以參考下
一、定義2個循環(huán)依賴的類
package cn.edu.tju.domain2; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; @Component public class A { private final B b; public B getB() { return b; } @Lazy public A(B b){ this.b = b; //System.out.println(b); } }
package cn.edu.tju.domain2; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; @Component public class B { private final A a; public A getA() { return a; } @Lazy public B(A a){ this.a =a; //System.out.println(a); } }
二、定義配置文件(spring09.xml):
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="cn.edu.tju.domain2"/> </beans>
三、定義測試類:
package cn.edu.tju; import cn.edu.tju.domain.Husband; import cn.edu.tju.domain2.A; import cn.edu.tju.domain2.B; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.DruidPooledConnection; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.ConfigurationClassPostProcessor; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.sql.SQLException; public class Test09 { public static void main(String[] args) throws Exception { ConfigurableApplicationContext ctx = new ClassPathXmlApplicationContext("spring09.xml"); A a = ctx.getBean("a", A.class); B b = ctx.getBean("b", B.class); System.out.println(a.getClass().getName()); System.out.println(a.getB().getA() == a); System.out.println(a.getB().getClass().getName()); System.out.println(b.getA().getClass().getName()); } }
四、執(zhí)行結(jié)果:
以上就是Spring通過@Lazy解決構(gòu)造方法形式的循環(huán)依賴問題的詳細內(nèi)容,更多關(guān)于Spring @Lazy解決循環(huán)依賴的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java IText異常NoClassDefFoundError: org/bouncycastle
在使用Java進行PDF文檔操作時,iText是一個非常強大的庫,然而,在實際開發(fā)過程中,可能會遇到一些異常情況,其中之一就是??NoClassDefFoundError: org/bouncycastle/asn1/ASN1Encodable??,本文將探討這個錯誤的原因及其解決方案,需要的朋友可以參考下2025-02-02解決IDEA修改 .vmoptions 文件后導致無法啟動的問題
這篇文章主要介紹了解決IDEA修改 .vmoptions 文件后導致無法啟動的問題,需要的朋友可以參考下2020-12-12使用自定義注解進行restful請求參數(shù)的校驗方式
這篇文章主要介紹了使用自定義注解進行restful請求參數(shù)的校驗方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10SpringRetry重試機制之@Retryable注解與重試策略詳解
本文將詳細介紹SpringRetry的重試機制,特別是@Retryable注解的使用及各種重試策略的配置,幫助開發(fā)者構(gòu)建更加健壯的應(yīng)用程序,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04Java實現(xiàn)word轉(zhuǎn)pdf并在關(guān)鍵字位置插入圖片
這篇文章主要為大家詳細介紹了如何利用Java實現(xiàn)word轉(zhuǎn)pdf,并在word中關(guān)鍵字位置插入圖片,感興趣的小伙伴可以跟隨小編一起學習一下2024-11-11