gpt4 book ai didi

java - 子应用程序中的 application.properties 文件不会覆盖主应用程序中的 application.properties 文件

转载 作者:行者123 更新时间:2023-12-02 10:13:18 24 4
gpt4 key购买 nike

我是 Spring Boot 的新手,我有一个困惑,当 Spring 应用程序中的所有属性源(如 application.properties 、 my.properties、application-{profile}.properties )进入环境时,为什么它们不进入环境获得覆盖。如果两个不同的属性文件中有一些公共(public) key 。

例如,如果我创建一个子项目并在其中有一个 application.properties 并具有属性,可以说“name=child”并创建该项目的 jar 并将该 jar 添加到我的主项目中,并且主项目也有一个比方说,具有相同键但不同值的 application.properties 文件'名字= parent '如果我在 spring 中使用 Envionment 类并获取 env.getProperty(key) 那么它会显示父级。对我来说它应该是“子”,因为如果所有属性都去同一个地方,那么两个具有不同值的相同键就不能存在。

而且我对属性文件的排序也感到困惑。这是否意味着如果它在第一个文件中获取属性,那么它不会到第二个文件来搜索该属性?

最佳答案

Spring boot 有一个评估所有属性源的顺序。它们列于此处:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

基本上,Spring 知道它需要获取的所有属性。然后它将评估从哪里获取它们。在您的情况下,它首先评估您的 {profile}.properties 文件。如果它找不到它需要的东西,那么它将进入您的常规 application.properties。因此,如果您希望 application.properties 值覆盖 {profile} 值,则不会。

关于java - 子应用程序中的 application.properties 文件不会覆盖主应用程序中的 application.properties 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54844934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com