我有3个文件,如下所示:
1. application.yml with some other configurations
2. application-default.yml with contents
apisigning:
client:
sharedKey: 'some xyz'
secretKey: 'some xyz'
proxyHost: 127.0.0.1
port: 9480
3. application-cloud.yml with contents
apisigning:
client:
sharedKey: 'some xyz'
secretKey: 'some xyz'
因此,当我使用默认配置文件运行应用程序时,我想使用application-default.yml文件中的代理主机和端口值。但是,一旦将其部署到云中,就不应理想地配置代理主机和端口值。我面临的问题是,在云环境中,它以某种方式获取该proxyHost和端口的值。我想知道这里出了什么问题?在这种情况下,如何基于配置文件完成yml文件的分层。
答案 0 :(得分:-1)
来自Spring Boot参考
24.4特定于配置文件的属性 除了application.properties文件之外,还可以使用以下命名约定来定义特定于配置文件的属性:application- {profile} .properties。如果没有设置活动配置文件,则环境具有一组默认配置文件(默认为[默认])。换句话说,如果未显式激活任何配置文件,则将加载application-default.properties中的属性。
特定于配置文件的属性是从与标准application.properties相同的位置加载的,特定于文件的文件总是会覆盖非特定文件,无论特定于文件的文件是在打包jar的内部还是外部。
如果指定了多个配置文件,则采用后赢策略。例如,将spring.profiles.active属性指定的配置文件添加到通过SpringApplication API配置的配置文件之后,因此具有优先权。
[注意] 如果您在spring.config.location中指定了任何文件,则不会考虑这些文件的特定于配置文件的变体。如果您还想使用特定于配置文件的属性,请使用spring.config.location中的目录。