繁体   English   中英

Spring Boot加载多个属性文件

[英]Spring boot Loading multiple properties files

我有一个application.properties,它指定要加载到应用程序中的属性文件的名称。

application.properties

sources=a_source,b_source,c_source

a_source,b_source和c_source具有相同的变量。

a_source.properties

location = locationb

b_source.properties

location = locationb

c_source.properties

location=locationc

因此,如果我将属性文件的名称添加到application.properties中,例如d_source,则d_source.properties应该由应用程序自动加载。 这样我的应用程序就可以处理4个属性文件中的数据。 在春季靴子里有可能吗?

也许您应该考虑使用配置文件。 签出: 配置文件配置 文件特定的属性

如果您试图将多个应用程序属性视为多个java属性资源,那么您将走上错误的道路。 你不能,你不应该。 每个应用程序为每个环境/配置文件定义一个属性/ yaml文件。

但是,如果要将application.properties或yaml视为环境/配置文件的基础,则可以执行以下操作:

例如。,

应用integration_test.yaml:

spring.profiles: integration_test
spring.profiles.include:
  - unit_test
  - mock_test

在上面的内容中,您要说的是只要您具有“ integration_test”活动配置文件,还包括“ unit_test”和“ mock_test”配置文件中的配置。

但是请注意,如果在包含的配置文件中定义了相同或重复的属性或配置键,则属性值将被覆盖,并由下一个提到的配置文件替换。 在这种情况下,如果在所有3个配置文件中具有相同的属性键,但值不同,则将嘲笑测试配置文件的值用作最终值。

参考: https : //docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html

您也可以使用以下解决方案:

application-unit_test.properties

# content of file

application-mock_test.properties

# content of file

application.properties

spring.profile.active = default
spring.profiles.include = unit_test, mock_test

暂无
暂无

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

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