有没有办法让spring cloud config客户端的application.yml从spring配置服务器读取值? 例如, 在我的spring cloud配置客户端上,application.yml就是这样的
spring:
application:
name: clienttest
mvc:
view:
prefix: /jsp/
suffix: .jsp
server:
port: 8080
context-path: /clienttest
tomcat:
uri-encoding: UTF-8
eureka:
client:
service-url: {"defaultZone":"http://dev.euraka01.app.com:8769/eureka/,http://dev.euraka02.app.com:8770/eureka/"}
instance:
prefer-ip-address: true
和我的bootstrap.yml文件如下
spring:
application:
name: clienttest
cloud:
config:
name: clienttest
uri: http://192.168.2.101:9000
enabled: true
profile: out_test
label: master
现在对于service-url值,对于不同的环境,我必须配置不同的eureka url值,我的问题是,无论如何我是否可以在配置服务器中配置service-url值?就像我在application.yml中将值设置为$ {service-url}一样,当我启动配置客户端服务器时,它会根据我在bootstrap.yml中设置的配置文件和标签从配置服务器获取值。 / p>
答案 0 :(得分:1)
您可以通过配置文件和标签在配置服务器上查找属性,其中label是分支,标记。
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
在上面的示例中,您的配置服务器将尝试查找名为
的文件clienttest-out_test.properties
在主分支上的git repo中。
spring:
application:
name: clienttest
cloud:
config:
profile: out_test
label: master
答案 1 :(得分:0)
Essex Boy, 非常感谢您的帮助,我之前能够从不同的配置文件中读取值。 我的问题是如何使application.yml从配置服务器获取值,现在我自己解决了,答案很简单,在应用程序中,设置值如$ {service-url},完整答案如下:
在我的application.yml中,内容如下:
spring:
application:
name: clienttest
server:
port: 8080
context-path: /clienttest
tomcat:
uri-encoding: UTF-8
eureka:
client:
service-url: {"defaultZone":"${service-url}"}
instance:
prefer-ip-address: true
请注意service-url值,现在值设置为{" defaultZone":" $ {service-url}"},并在我的application.properties文件中在配置服务器上,属性文件内容如下:
service-url=http://192.168.2.101:8769/eureka/,http://192.168.2.101:8770/eureka/
然后当我启动mocroservice时,它可以在http://192.168.2.101:8769/eureka/和http://192.168.2.101:8770/eureka/
上自我抵制这就是我想要的结果。