我有一个微服务,我想拥有一些依赖于环境的属性,所以我使用 application.yml、application-dev.yml、application-int.yml 等.....
启动时,我通过spring.profiles.active=myprofile
并且相关applicaiton-myprofile.yml
的内容与applicaiton.yml
. 到目前为止一切正常。
但是现在我想将我的一些非特定于环境的属性分类到他们自己的业务模块中,所以除了我的 application.yml applicaiton-.yml我还想将更多 yml 文件中的属性加载到 springENVIRONMENT
中。所以我可以创建正确的 BusinessConfigProperties 类@ConfigurationProperties
。
为此,我尝试在 spring.config.location 中添加这些 yml 文件名,如下所示
spring:
config:
name:
- some-props
- very-different-name-props
location:
- classpath:/config/*
我也提供了配置名称,我所有的 yml 文件都存在于 /config 文件夹中
但我仍然无法读取这些文件中提到的任何属性。
org.yaml.snakeyaml.Yml
我可以通过手动加载带有太多样板代码的文件来克服这个问题,以读取 YML 映射并实例化我的类。应该有一个简单的方法来实现这一点。
更新
我在上面更新为,
spring:
config:
location:
- classpath:classpath:/config/some-props.yml,classpath:/config/very-different-name-props.yml
但这也不起作用我没有使用配置文件,因为与上述文件一起,我已经拥有applicaiton-<profile>.yml
了特定于环境的属性。我将spring.profile.active
在启动 jvm 参数中作为环境名称传递。另外我不想以 application-<added_profile>.yml 开头命名这些文件