簡體   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