在spring云中的bootstrap.yml上设置configuration文件,以定位不同的configuration服务器

我使用docker撰写来运行我所有的微服务。 对于每个服务我给它一个简短的主机名。

version: '2' services: config: image: springbox-config-server restart: always ports: - "8890:8890" discovery: image: springbox-eureka restart: always ports: - "8763:8763" 

因此,在我的微服务中,我必须以其简短的主机名来定位configuration服务器。

 spring: application: name: myservice cloud: config: uri: http://config:8890 fail-fast: true 

但是,当我在没有docker的IDE中本地运行它们时,无法parsing短主机名。

所以我正在寻找一个解决scheme,根据我的环境定位不同的configuration服务器。

我find解决scheme。 基本上,我们使用springconfiguration文件来丰富bootstrap文件。 例如

 spring: application: name: myservice cloud: config: uri: http://config:8890 fail-fast: true --- spring: profiles: development cloud: config: uri: http://localhost:8890 

好消息是,我们不必重写configuration文件中的所有属性。 默认属性是inheritance的。 例如,当开发configuration文件启用时,我的应用程序名称是从默认的名称always myserviceinheritance。

要激活configuration文件,请使用以下属性启动该服务

 -Dspring.profiles.active=development