我已经为spring config配置了bootstrap.yml
spring:
application:
name: cce-auth
cloud:
config:
uri: http://temp.com:8888
它工作正常,但是我需要动态的URI值,例如,如果我将在测试环境中发布此.war
,则该URL必须为http://test-temp.com:8888
。
为此,我有解决方案在服务器中创建config.txt文件,并使用I / O流簧片/将此字符串写入bootstrap.yml。
但是问题是加载,在我写bootstrap.yml之前,弹簧加载http://localhost:8888
。
所以我的原因是为配置服务器动态创建URI。 你有什么主意吗?
答案 0 :(得分:0)
在bootstrap.yml
文件中定义active_profile
spring:
profiles:
active: ${activatedProperties}
然后为每个环境等创建bootstrap-${activatedProperties}.yml
。bootstrap-dev.yml
,bootstrap-pre.yml
,bootstrap-prod.yml
例如:
spring:
application:
name: servicename_prod
cloud:
config:
uri: https://admin:123456@test.com:8888
server:
port: 8443
将插件添加到pom.xml
文件中:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
运行Java时,请在其上定义环境:例如,在prod
环境下运行。
java -Dserver.port=8443 -Dspring.profiles.active=prod -jar ....