当前位置: 首页 > 知识库问答 >
问题:

为什么会出现依赖循环问题?虽然我知道Spring框架已经解决了依赖循环问题

欧阳智志
2023-03-14

存在依赖循环问题。以下是Spring框架的信息:

The dependencies of some of the beans in the application context form a cycle:

   authenticateController (field private com.aust.sgc.authenticate.AuthenticateProcessor com.aust.controller.AuthenticateController.authenticateProcessor)
      ↓
   authenticateProcessor (field private java.util.List com.aust.sgc.authenticate.AuthenticateProcessor.authenticateServices)
      ↓
   enterpriseAuthenticateService
┌─────┐
|  categoryServiceImpl
↑     ↓
|  demandServiceImpl
└─────┘

但当我添加@Lazy时,问题就解决了。我几乎无法在其他地方恢复这种现象,我也不知道原因。如果你能早点给我解释,我将不胜感激。

共有1个答案

韩阳云
2023-03-14

bean声明为@Lazy会告诉Springboot不要在启动时初始化它。但只在需要时初始化它。

以一家餐馆为例,没有@Lazy

你去餐厅吃饭时,服务员已经在那里了。

使用@Lazy时,服务器会在你问他时出现。

 类似资料:
  • 问题内容: 我正在设计一个系统,其中包含两个模块,一个模块孕育文件,另一个模块。对于某些逻辑运算,它们需要彼此提供的服务。 每个模块都由一个单例表示,该单例实现一个接口,该接口向彼此提供一些服务,并带有抽象工厂来提供它们,如下所示: 文件模块的主类是这样的: 我不确定自己是否正确处理了循环依赖。有什么办法可能会意外中断? 编辑 :正如下面已回答的那样,处理此问题的正确方法是注射。但是,解决此问题的

  • 我在一个ARM模板中有两个相互依赖的Azure资源:一个密钥库和一个service fabric集群。 是否有一种方法可以引用service fabric集群的对象ID来提供给密钥库的访问策略,是否有一种方法可以在不硬编码任何值的情况下生成密钥库中的机密?理想情况下,我们只知道秘密名称,并且只将该秘密名称提供给ARM模板中的服务fabric集群。

  • 我试图创建一个函数,使用不同的字段作为权重将数据分成十分之一,这样我就可以有相等的暴露桶。在这样做的时候,我创建了一个简单的例子,我试图进入3个桶。我确实在第一部分遇到了困难,那就是让这个while循环工作起来: 我的成绩是0,0 谢谢!

  • 本文向大家介绍带有@Transactional和@Async的循环依赖问题的解决,包括了带有@Transactional和@Async的循环依赖问题的解决的使用技巧和注意事项,需要的朋友参考一下 今天我们来探讨一个有意思的spring源码问题,也是一个学生告诉了我现象我从源码里面找到了这个有意思的问题。 首先我们看service层的代码案例,如下: 在transation方法上面加上了@Trans

  • 问题内容: 我有一个模块化的maven项目,其中两个模块“ BIZ”和“ EJB”包含如下内容: 如您所见, “ EJB”依赖于“ BIZ”, 因为它使用 MyClassX (实际上,它使用了BIZ的几种类别)。这就是 ImplFactory 使用反射实例化 InterfaceImpl 的原因。问题是 cl.newInstance() 将抛出 ClassCastException, 因为这两个模块

  • 问题内容: 我已经成功地将AngularJs与OOP结合使用了一段时间,所提供的方法允许您将类定义为angular服务,以后可以像这样扩展或继承: 使用所描述的方法使您能够定义完美地集成到角度基础架构中的类。您可以从OOP和AngularJs这两个世界获得各种漂亮的功能。依赖注入对于您的类是免费的,它使您的类变得简单,允许将许多样板控制器代码放入某些基类中,以便以后重用。 然而 AngularJs