每个环境我们都有不同的配置服务器。每个spring boot应用程序应针对其相应的配置服务器。我试图通过在bootstrap.properties文件中设置配置文件来实现此目的,例如:
spring.application.name=app-name spring.cloud.config.uri=http://default-config-server.com --- spring.profiles=dev spring.cloud.config.uri=http://dev-config-server.com --- spring.profiles=stage spring.cloud.config.uri=http://stage-config-server.com --- spring.profiles=prod spring.cloud.config.uri=http://prod-config-server.com
然后,我设置了cla,-Dspring.profiles.active=dev但是加载的配置服务器始终是文件中的最后一个设置(即,在上述设置中将加载产品配置服务器,然后如果移除产品,则将加载阶段)。
-Dspring.profiles.active=dev
是否可以为云配置服务器设置引导程序配置文件?我遵循了这个示例,但似乎无法正常工作。就其价值而言,这些配置文件非常适合加载正确的配置(即,如果dev配置文件处于活动状态,则将加载app-name- dev.properties),但不会从正确的配置服务器中提取。
在单个文件中指定不同的配置文件仅支持YAML文件,不适用于属性文件。对于属性文件,请指定一个特定的环境bootstrap-[profile].properties以从默认值覆盖属性bootstrap.properties。
bootstrap-[profile].properties
bootstrap.properties
所以你的情况,你会得到4个文件bootstrap.properties,bootstrap-prod.properties,bootstrap- stage.properties和bootstrap-dev.properties。
bootstrap-prod.properties
bootstrap- stage.properties
bootstrap-dev.properties
但是,除此之外,您还只能提供默认值,bootstrap.properties并且在启动应用程序时通过将a传递给应用程序来覆盖属性-Dspring.cloud.config.uri=<desired- uri>。
-Dspring.cloud.config.uri=<desired- uri>
java -jar <your-app>.jar -Dspring.cloud.config.uri=<desired-url>
这将优先于默认配置值。