`
james_jj
  • 浏览: 3581 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring的循环引用问题

阅读更多
今天在定义bean的时候遇到循环引用问题,
看看网上都是怎么解决,
1.是在循环引用中bean时直接引用接口的实现类.
2.是在再循环引用中在为一个接口创建两个bean的实例,
  就像接力一样,再多创建出来个人
  但这种情况是有条件的.
  (原文说两个业务服务互相调用的路径是不相交的)
  我理解的是这两个bean是不同的接口的实例.
3.覆盖源码了:
  有一个参数setAllowRawInjectionDespiteWrapping,默认是false,将其设成true即可。
  代码如下:

  
public class MyWebApplicationContext extends XmlWebApplicationContext {  
  
      @Override  
      protected DefaultListableBeanFactory createBeanFactory() {  
        DefaultListableBeanFactory beanFactory =  super.createBeanFactory();  
        beanFactory.setAllowRawInjectionDespiteWrapping(true);  
        return beanFactory;  
      }  
  
    }

  然后在web.xml配置启用此context,
   
<context-param>  
        <param-name>contextClass</param-name>  
        <param-value>xxx.MyWebApplicationContext</param-value>  
    </context-param>
分享到:
评论

相关推荐

    解决timer循环引用的问题

    本文将深入探讨iOS中的定时器循环引用问题,并提供一种解决方案来封装定时器,以避免这类问题。 首先,我们来理解一下什么是循环引用。在Objective-C或Swift中,当两个或更多对象相互持有强引用时,就会形成循环...

    Spring 循环引用(三)源码深入分析版

    在Spring框架中,循环引用(Circular Dependency)是一个常见的问题,特别是在使用依赖注入(Dependency Injection)时。本篇文章将深入分析Spring如何处理循环引用,并通过源码解析其内部机制。 首先,我们来理解...

    Spring5.0源码深度解析之SpringBean循环依赖问题解决方案.docx

    例如,在上面的例子中,如果不手动设置AService和BService的依赖关系,将会出现循环引用异常。 解决循环依赖问题的方法有多种,例如,使用三级缓存机制、手动设置依赖关系、使用依赖注入等。在Spring框架中,可以...

    简单了解spring bean的循环引用

    1. **懒加载(Lazy Initialization)**:将某个Bean的`@Component`或`@Service`等注解改为`@Lazy`,这样Spring将等到真正使用该Bean时才进行实例化,从而避免了循环引用的问题。但请注意,这种方式可能导致多线程...

    Spring循环依赖案例问题详解.docx

    在Spring框架中,循环依赖(Circular Dependency)是指两个或多个bean之间形成了一种相互引用的关系,使得它们在初始化过程中无法独立完成实例化。在上述案例中,`AuthorService`依赖于`BookService`,而`...

    详解在springmvc中解决FastJson循环引用的问题

    FastJson是阿里巴巴开源的一款高性能的JSON处理工具,广泛应用于Java应用程序中,特别是...通过上述配置方法,开发者可以有效地解决在Spring MVC中使用FastJson时遇到的循环引用问题,确保应用的健壮性和数据的正确性。

    spring多个动态代理导致循环依赖报错问题解决

    了解并熟练掌握以上策略,可以帮助我们更有效地应对Spring中的动态代理导致的循环依赖问题。 为了更好地理解并实践这些解决方案,你可以参考提供的压缩包文件`demo-spring`中的示例代码,通过实际操作来加深印象。...

    Spring的3级缓存和循环引用的理解.doc

    Spring的3级缓存和循环引用机制是Spring框架中处理依赖注入的重要组成部分,尤其是在处理单例bean的循环依赖时显得尤为重要。以下是对这些概念的详细解释: **一、循环依赖** 在Spring中,循环依赖指的是两个或多...

    spring循环注入异常问题的解决方案

    当两个或多个bean相互依赖,形成一个闭环,就会触发Spring报出"BeanCurrentlyInCreationException"异常,提示存在无法解决的循环引用。循环注入分为两种类型:构造器循环依赖和setter方法循环依赖。 首先,我们来...

    Spring 解决循环依赖的 3 种方式.docx

    但如果开发者明确指定允许循环依赖,Spring会在每次请求prototype Bean时进行实例化和依赖注入,这可能导致每次请求都会创建一个新的Bean实例,从而避免了循环引用的问题。 总结来说,Spring通过“三级缓存”和“半...

    Spring使用时的循环依赖问题详解.docx

    Spring通过其强大的依赖注入机制,大部分情况下能够自动解决单例bean之间的循环依赖问题,但并非对所有类型的循环依赖都有效。 首先,我们来看一个简单的例子: ```java @Configuration @ComponentScan public ...

    Spring Ioc源码分析系列--自动注入循环依赖的处理.doc

    循环依赖是 Spring 框架中一个经典的问题,也是面试中常被问到的问题。本篇文章将深入分析 Spring 如何处理循环依赖的设计思想和实现机制。 首先,循环依赖是指不同的 bean 之间出现了循环引用的情况。例如,CycleA...

    Spring如何解决循环依赖的问题

    Spring框架在处理依赖注入时,会遇到一个棘手的问题,那就是循环依赖。循环依赖是指两个或多个bean之间形成一个依赖闭环,导致它们无法被正常初始化。本文将详细讲解Spring如何解决这一问题,以及为何它仅支持单例...

    解决spring mvc JSON 无限死循环

    然而,在某些情况下,由于对象之间的循环引用,可能会导致JSON序列化过程中出现无限递归的问题,进而引发StackOverflowError异常。本文将详细探讨这一问题,并提供几种有效的解决方案。 #### 问题描述 当我们在...

    SpringIOC问题-回复1

    在启动时,会有一个AutowiredAnnotationBeanPostProcessor后置处理器,处理这些注解,解决循环引用问题。 - 对于自我引用(A引用A)的情况,如果未指定`required=false`,Spring会尝试查找匹配的bean,找不到时抛出...

    Spring循环依赖的解决办法,你真的懂了吗

    Spring循环依赖的解决办法 Spring框架中,循环依赖是指两个或多个Bean相互引用,形成一个环。这篇文章主要介绍了Spring循环依赖的解决办法。在Spring中,循环依赖可以分为两种场景:构造器的循环依赖和属性的循环...

    浅谈Spring如何解决循环依赖的问题

    "浅谈Spring如何解决循环依赖的问题" Spring框架是如何解决循环依赖的问题?这是一个经常被问到的高频面试题。要理解这个问题,需要从源码的角度对其实现原理进行讲解。 首先,需要了解 Spring bean 的创建过程。...

    探秘Spring框架解决循环依赖的高效策略

    Spring框架在处理循环依赖问题上展现出了其卓越的性能和灵活性。循环依赖是软件设计中常见的问题,特别是在大型Java企业应用中,它可能导致系统僵死或者运行时异常。Spring通过三级缓存机制和AOP代理巧妙地解决了这...

    spring-learn.zip

    但若涉及循环依赖,Spring会提前初始化相关的bean,以解决循环引用。 2. 早周期引用:Spring通过早周期引用来解决部分循环依赖,当检测到一个bean正在被创建,并且其依赖项尚未完全构建时,会暂时保存这个未完成的...

    第六节课-Spring-是如何解决循环依赖的1

    nFactories.remove(beanName); } } } } return singletonObject; }``````````````` ...理解并掌握Spring处理循环依赖的方式对于优化和调试Spring应用至关重要,因为循环依赖可能导致难以预料的行为和性能问题。

Global site tag (gtag.js) - Google Analytics