繁体   English   中英

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

[英]application.properties file from child application not override application.properties file in main application

我是Spring Boot的新手,我感到困惑,当Spring应用程序中的所有属性源(例如application.properties,my.properties,application- {profile} .properties)进入Environment时,为什么不覆盖它们。 如果两个不同的属性文件中有一些公用密钥。

例如,如果我创建一个子项目并在其中包含一个application.properties并具有吸引力,则说“ name = child”并创建该项目的jar,并将此jar添加到我的主项目中,并且该主项目也具有application.properties具有相同密钥但值不同的文件,如果我在春季使用Envionment类并获取env.getProperty(key),则说“ name = parent”,那么它将显示父级。 对我来说,它应该是“子代”,因为如果所有属性都将移到同一位置,那么就不会存在两个具有不同值的相同键。

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

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}的值,则不会。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM