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

Spring-多个配置和@CompontentScan顺序

慕志泽
2023-03-14
@SpringBootApplication(scanBasePackageClasses = BasePackage.class)
public class MyApplication {

    public static void main(final String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}
@Configuration
class Config1{
    // defines beans
}

@Configuration
class Config2{
    // defines beans
}

另一个maven依赖项也有config3

@Configuration
class Config3{
    // defines beans
}

我试图搜索文档,但没有找到扫描和初始化这些组件的顺序。

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/componentscan.html

我问这个问题是因为我有一个bean,它有@conditionalonmissingbean,以及定义它的多个配置。在官方文档语句中,扫描的顺序@configuration类。

共有1个答案

汤跃
2023-03-14

在第一步中,Spring扫描所有与bean基本包相关的类。然后spring将创建beans并将其注入。

如果需要以特定的顺序创建bean,可以通过添加@dependson来实现

从文档中:

 类似资料:
  • 1-我有一个带有Spring Boot的API,我需要配置两个DBMS(MySQL和Postgres)。 2-对于每个DBMS,我需要配置不同的配置文件。(Dev,Prod) 遵循我的MySQL配置类: 我以为我的出口是: 重要: 当我将配置文件配置为连接到我的MySQL Dev数据库时,我只想连接到它。我想要同样的结果,当它是MySQL的Prod的基础时。 当我将配置文件配置为连接到我的Post

  • 我正在尝试使用Spring-jpa-data中的Crud存储库: 我的数据访问bean配置如下: 因此,如您所见,我有两个数据源、两个EntityManagerFactories、两个TransactionManager和其他。。。 但我只将一个EntityManagerFactory传递到注释中()。 问题是:两个如何通过Spring-jpa-data使用多个数据源(entityManagerF

  • 问题内容: 我有多个要从类路径加载的属性文件。有一个默认设置,它是的一部分。我springcontext希望文件位于类路径中。即 我还需要使用外部集覆盖这些属性的选项。我在中有一个外部配置文件夹cwd。按照文件夹应该在classpath上。但是从doc尚不清楚,它是否只会覆盖或配置中的所有属性。 当我对其进行测试时,只会拾取,其余属性仍会从拾取/src/main/resources。我尝试将它们作

  • 我有多个属性文件要从类路径加载。在下有一个默认设置,它是的一部分。我的希望文件位于类路径上。即。 我还需要用外部集重写这些属性的选项。我在中有一个外部配置文件夹。根据spring boot,文档配置文件夹应该在类路径上。但从doc中不清楚它是否只会重写或config中的所有属性。 当我测试它时,只有被提取,其余属性仍然从中提取。我尝试将它们作为逗号分隔的列表提供给,但默认设置仍未被覆盖。 如何使多

  • 问题内容: 以下Python表达式之间有什么区别: 第一给出的结果与第二给出的结果不同。 例如, 第一: 第二: y是第一的 3 和第二的 4 问题答案: 在赋值语句中,总是在对变量进行实际设置之前先对右侧进行全面评估。所以, 评估板y(我们称之为的结果),评估(呼叫),然后设置要和y到。也就是说,就像 相比之下, 设置x为y,然后设置,因此等效于

  • 本文向大家介绍详解Spring Boot 配置多个RabbitMQ,包括了详解Spring Boot 配置多个RabbitMQ的使用技巧和注意事项,需要的朋友参考一下 闲话 好久没有写博客了,6月份毕业,因为工作原因,公司上网受限,一直没能把学到的知识点写下来,工作了半年,其实学到的东西也不少,但是现在回忆起来的东西少之又少,有时甚至能在同个问题中踩了几次,越来越觉得及时记录一下学到的东西很重要。