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

Spring boot-bean创建顺序

谭泉
2023-03-14
@Component
public class A {}

@Component
public class B {
    @Autowired
    private A a;
}

@Configuration
public class externalConfig {
    @Bean
    public C c() {
        return new C();
    }
}

@SpringBootApplication
@Import(externalConfig.class)
public class testApplication {
    @Bean
    public D d() {
        return new D();
    }
}

共有1个答案

牧璞
2023-03-14

不是百分之百确定,但是:

  1. 不,不能保证。
  2. A将被初始化,然后是B,因为您正在注入A。
  3. 导入不能保证顺序,只有当您有一些不延迟的注入

检查DependsOn注释(在这里输入链接描述)。

 类似资料:
  • 在创建其他依赖bean之前,是否可以避免@Autowire某些bean?让我用一个例子更好地解释一下: 我有一个FactoryBean,它创建了一个类型为A的对象,该对象具有一个名为a的属性。如果属性为null,它会为bean A分配默认值。 在@Configuration类中,我有: 发生的事情是工厂创建bean(我不完全理解如何创建),但工厂中的字段a为null,我需要它使用另一个bean来创

  • 有没有办法在刷新Spring上下文后找出bean创建顺序(或至少依赖顺序)? 只要简单的bean定义顺序就可以了。我不想要他们注册的顺序。我想要创建它们的顺序(依赖关系树)

  • 我想把我的项目连接到弹性搜索。我得到以下错误: com.example.demo.elasticsearch.controller中的字段存储库。控制器需要“com.example.demo.elasticsearch.repository”类型的bean。找不到CustomerRepository“。 注入点有以下注释:- 行动: 所以我构建了一些类,如下所示: Controller.java

  • 我是Spring的开始者,请帮忙 实体 存储库: 控制器: 数据配置 : pom.xml文件 - 错误: 2016年8月29日下午3:33:04 org.apache.catalina.core。ApplicationContext日志

  • 我目前正在做一个小项目,计划展示数据库中的一些文档。我遇到了这个问题,springboot将我的控制器称为bean。这是我真正的豆子。 和我的控制器: 我的存储库 错误: 组织。springframework。豆。工厂UnsatisfiedPendencyException:创建名为“productController”的bean时出错,该bean在文件[E:\IntelijProj\target

  • 我正在尝试基于此示例编写自己的代码。 我使用的是Spring Boot,所有依赖项都来自https://start.spring.io/ 这是我的知识库: 我的控制器的一部分: 我的Spring Boot: 我收到此错误: 我做错了什么?如果有必要,我可以发布更多类似实体的代码 我正在使用IntelliJ IDEA。