当Spring Boot的application.properties (yml)文件中出现重复的属性时,会有怎样的表现
在Spring Boot中,配置文件 application.properties 或 application.yml 被广泛认知为可以根据不同的配置文件命名为 application-{profileName}.properties,以便为每个配置文件提供不同的设置和切换能力。
公式文档中也写有类似的内容。
http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-external-config-profile-specific-properties
Spring Boot的配置文件有两个属性,每个属性都具有以下功能。
プロパティ機能
spring.profiles.active
プロファイルを切り替える。spring.profiles.include
プロファイルを取り込む。这次要讨论的问题是关于spring.profiles.include,如果在设置了这个属性的情况下,被引入的一方和引入的一方都设置了相同的属性值,那么哪个设置值会生效。可以想象一下以下的文件。
spring.profiles.include=test
server.port=8080
server.port=18080

结果是,被采纳方的值将生效。
也就是说,在之前的例子中,server.port 的值将会生效,是”18080″。
注意:在使用 include 属性时,虽然我们预期导入到其中的属性值是有效的,但实际上,被导入的属性的值才是有效的。利用这种行为可以减少配置值的编写量,因此请记住这一点。