java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot无法识别bootstrap.yml

SpringBoot无法识别bootstrap.yml小绿叶问题的解决办法

作者:彬禹随笔

一般单独使用 Spring Boot 时,bootstrap.yml 文件一般是不会生效的,也就是没有小绿叶图标,本文给大家介绍了SpringBoot无法识别bootstrap.yml小绿叶问题的解决办法,文中给出了两种解决方案,需要的朋友可以参考下

错误信息

问题定位

一般单独使用 Spring Boot 时,bootstrap.yml 文件一般是不会生效的,也就是没有 小绿叶 图标;如果使用了 Spring Cloud 组件 bootstrap.yml 才会生效,需要引入 spring-cloud-commons-dependencies 这个包依赖。 另外 bootstrap.yml 的加载顺序优先于 application.yml。

解决

方案一,可以引入 Spring Cloud 中的某一组件即可,如 Eureka 或则 Feign 等,因为里面包含 spring-cloud-commons-dependencies 依赖。

 <dependency>
    <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
 </dependency>

方案二,单独引入 spring-cloud-commons-dependencies 依赖

 <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-commons-dependencies</artifactId>
     <version>${spring-cloud-commons.version}</version>     
 </dependency>

拓展:

springboot读取不到bootstrap.yml配置项问题

今天在搭建项目的时候,采用springboot 2.4.6版本,然后添加bootstrap.yml配置文件后突然发现一直读取不到配置。之前在进行项目依赖漏洞版本的升级时有对其进行简单了解。

原因剖析

简单的说就是:由于bootstrap是spring cloud带来的附加品,所以需要有cloud相关的一些配置才能够去正常读取它,否则只会去读取application.yml。

解决方法

如果springboot版本低于2.4.0版本的话,需要在启动类对应的pom里添加依赖

<!-- spring cloud,基于spring cloud才会读取bootstrap.yml  -->
<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-context</artifactId>
</dependency>

如果springboot版本高于2.4.0版本的话,则在启动类对应的pom里添加依赖

<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

例如我这里用到的是2.4.6版本,那么对应需要加的依赖为:

<!-- spring cloud,基于spring cloud才会读取bootstrap.yml -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
    <version>3.0.3</version>
</dependency>

至此,启动banner和@value("${spring.application.name}")都可以读取到bootstrap.yml文件中的值。

以上就是SpringBoot无法识别bootstrap.yml小绿叶问题的解决办法的详细内容,更多关于SpringBoot无法识别bootstrap.yml的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文