Spring通过@Lazy解决构造方法形式的循环依赖问题

 更新时间:2023年10月06日 09:32:56   作者:amadeus_liu2  
这篇文章主要给大家介绍了Spring如何通过@Lazy解决构造方法形式的循环依赖问题,文中有详细的代码示例,对大家的学习活工作有一定的帮助,具有一定的参考价值,需要的朋友可以参考下

一、定义2个循环依赖的类

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());
    }
}

四、执行结果:

以上就是Spring通过@Lazy解决构造方法形式的循环依赖问题的详细内容,更多关于Spring @Lazy解决循环依赖的资料请关注脚本之家其它相关文章!

相关文章

  • Java处理异常2种机制关键字区别解析

    Java处理异常2种机制关键字区别解析

    这篇文章主要介绍了java处理异常2种机制关键字区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • java求数组元素重复次数和java字符串比较大小示例

    java求数组元素重复次数和java字符串比较大小示例

    这篇文章主要介绍了java求数组元素重复次数和java字符串比较大小示例,需要的朋友可以参考下
    2014-04-04
  • Java使用正则表达式判断独立字符的存在(代码示例)

    Java使用正则表达式判断独立字符的存在(代码示例)

    通过使用正则表达式,我们可以更加灵活地判断字符串中是否包含特定的字符,并且可以控制匹配的条件,如独立的字符,这为我们处理字符串提供了更多的选择和功能,这篇文章主要介绍了Java使用正则表达式判断独立字符的存在,需要的朋友可以参考下
    2023-10-10
  • Springboot前后端分离项目配置跨域实现过程解析

    Springboot前后端分离项目配置跨域实现过程解析

    这篇文章主要介绍了Springboot前后端分离项目配置跨域实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • java对象序列化与反序列化原理解析

    java对象序列化与反序列化原理解析

    这篇文章主要介绍了java对象序列化与反序列化原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 基于java中子类的继承性的应用介绍

    基于java中子类的继承性的应用介绍

    本篇介绍了,基于java中子类的继承性的应用。需要的朋友参考下
    2013-05-05
  • Java持久化XML文件配置解析

    Java持久化XML文件配置解析

    这篇文章主要为大家介绍了Java持久化XML文件配置解析,当你在使用 Java 编程语言 来编写软件时,实现持久化配置的方式。有需要的朋友可以借鉴参考下,希望能够有所帮助<BR>
    2022-03-03
  • Java圆通物流轨迹推送服务接口文档及流程

    Java圆通物流轨迹推送服务接口文档及流程

    这篇文章主要介绍了圆通物流轨迹推送服务接口Java文档,主要用来接收圆通推送的订单状态,本文给大家分享详细流程,感兴趣的朋友跟随小编一起看看吧
    2022-02-02
  • gRPC实践之proto及Maven插件概念及使用详解

    gRPC实践之proto及Maven插件概念及使用详解

    这篇文章主要为大家介绍了gRPC实践之proto及Maven插件概念及使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Java中抽象类和接口介绍

    Java中抽象类和接口介绍

    大家好,本篇文章主要讲的是Java中抽象类和接口介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01

最新评论