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

Spring Boot配置文件特定的优先级和Spring.config.import属性

姜卜霸
2023-03-14

Spring启动版本:2.5.0

    null
spring.profiles.active=@prodProfile@
spring.config.import=optional:file:./application-local.properties

其中@prodprofile@的值来自pom.xml的配置文件配置部分。

    <properties>
        <prodProfile>prod</prodProfile>
    </properties>

如果在application-prod.properties和application-local.properties中有相同的属性,哪个优先?当我测试时,我发现特定配置文件具有优先级。无法用Spring.Config.Import重写属性值。是预期行为吗?

共有1个答案

卫招
2023-03-14

是的,这是预期的行为。如文档中所述,使用spring.config.import导入的文件“被视为插入到声明导入的文档下面的附加文档”。

在您的示例中,您将文件导入到application.properties中,因此它将被视为一般的、非特定于配置文件的配置。因此,特定于配置文件的属性将优先考虑。

 类似资料:
  • 在我的Spring Boot程序中,由于加载时的属性值不好,我得到了一个失败。特别是,它使用DB2Hibernate方言,但它没有在我所使用的属性文件中定义。 假设没有注释,Spring在哪里查找属性文件?是的,我知道它通常位于src/main/resources/application.properties中 如果我在测试用例中有一个属性,该怎么办;它是否忽略了main中的一个而使用了test中

  • 我正在做一个新的项目,第一次使用Spring-Boot。 传统上,在使用Spring和属性文件进行配置时,我在发行版(WAR)中提供了默认属性,并允许在某个文档位置重写它们。 例如: 这将允许我们在不丢失本地系统配置的情况下重新部署应用程序。 我喜欢Spring,因为它允许我们遵守惯例,这让我担心我可能做错了属性级联。 什么是提供包含在发行版中的外部化属性的最合适的方法,该属性具有合理的默认值(嵌

  • 我在这里有一些关于ActiveMQ配置和优先级的类似领域的问题。我目前正在配置ActiveMQ代理以关闭消息持久性。 根据文档,我知道它可以通过代理配置来实现: XML配置文件() 客户端的URI(TCP://localhost:61616?persistent=false) 代理端的 URI-XML配置文件(TCP://localhost:61616?persistent=false)。 我的第

  • spring对加载外部化配置有明确的命令。 主目录上的devtools全局设置属性(~/.-boot-devtools.properties当devtools处于活动状态时)。 @TestPropertySource对测试的注释。 @springboottest#properties注释属性。 命令行参数。 来自SPRING_APPLICATION_JSON(嵌入环境变量或系统属性中的内联JSON

  • 我已经实现了从head中提取item,更新它的优先级并将它放回队列的例程(使用AtomicReference) 现在我需要找出队列中的任意条目,更改它的优先级并将其放回队列中。看来PriorityQueue不支持这一点,那么我应该使用哪个类来完成期望的行为呢?

  • 创建Spring Boot cloud config应用程序时出现以下错误。有什么帮助吗?