在bootstrap.yml中不使用spring.application.name,在冲突情况下在application.properties中使用

时间:2019-06-27 12:43:23

标签: java spring-boot spring-cloud-config application.properties configserver

Spring Boot的新手。使用配置服务器基于配置文件分散属性。

bootstrap.yml:

spring: application: name: nameoftheapp profiles: active: profilehere cloud: config: uri: https://someurlhere

application.properties: some other key value pairs goes here spring.application.name=nameofthedummyapp

控制台日志:- XXX 2019-06-27 16:26:37.929 DEBUG [xxx,,,] 22564 --- [ main] o.s.web.client.RestTemplate : Created GET request for "https://someurlhere/nameofthedummyapp/profilehere" XXXX

但是我想的是,https://someurlhere/nameoftheapp/profilehere

看来,Spring Boot从application.properties中选择了spring.application.name而不是bootstrap.yml。在application.properties中进行注释解决了该问题。

我在示例中看到的是,为了访问配置服务器,spring boot使用bootstrap.yml。错的是,我在两个地方的名字都有冲突。

但想知道,

  1. 弹簧靴是否从适当的地方拿起?或
  2. 以后加载的配置文件(application.properties)是否覆盖第一个加载的配置文件(bootstrap.yml)?

这里有点困惑。

有人可以在这里分享一些见解吗?

1 个答案:

答案 0 :(得分:0)

如果在项目中添加了配置客户端依赖项,它将首先从引导程序属性中获取与配置文件和配置服务器相关的属性。

是的,您的问题是bootstrap.properties中的spring.application.name被application.properties文件中的spring.application.name覆盖。