我有一个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个属性文件中的数据。春季靴子有可能吗?
答案 0 :(得分:0)
也许您应该考虑使用配置文件。看一下这个: Profiles Profile Specific Properties
答案 1 :(得分:0)
如果您尝试将多个应用程序属性视为多个java属性资源,那么您的做法是错误的。你不能,你不应该。每个应用程序为每个环境/配置文件定义一个属性/ yaml文件。
但是,如果要将application.properties或yaml视为环境/配置文件的基础,则可以执行以下操作:
例如,
application-integration_test.yaml:
spring.profiles: integration_test
spring.profiles.include:
- unit_test
- mock_test
在上面的内容中,您要说的是只要您具有活动的“ integration_test”配置文件,还包括“ unit_test”和“ mock_test”配置文件中的配置。
但是请注意,如果有相同或重复的属性或配置键 在包含的配置文件中定义的属性值将被覆盖并 替换为下一个提到的配置文件。在这种情况下 在所有3个配置文件中具有不同值的属性键,mock_test 配置文件的值用作最终值。
参考:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html
答案 2 :(得分:0)
您也可以使用以下解决方案:
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