题外话

如果各位客官有需要开发一些小小需求,可以私我哦,承接小需求开发,或问题定位(仅限java),价格私聊哈

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

原因剖析

简单的说就是:由于bootstrap是spring cloud带来的附加品,所以需要有cloud相关的一些配置才能够去正常读取它,否则只会去读取application.yml/properties。
也可以看看别人怎么讲的:SpringBoot不读取bootstrap.yml/properties文件,我就不详述了。

解决方法

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

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

注:依赖版本要用对应springboot的版本,不知道的可以查看之前写的博客里面有说到:maven升级漏洞依赖jar包

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

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

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

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

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

根据之前依赖升级所了解到上面的方式,发现还是无法读取到配置文件的配置,百思不得其解,后来发现我的配置项有一点和之前的不一样。

#低版本springboot的配置项
spring:
	profiles:
		active: dev

但是用这个后idea提示我说这个配置项已经被弃用了,让我用最新的,于是去网上换了个高版本的配置项

#高版本springboot配置项
spring:
	config:
		activate:
			on-profiles:
				- dev

在改成高版本配置项后发现,启动后一直无法读取到bootstrap.yml,但是也不会启动报错,把它改成低版本的配置项后又可以正常读取了(基于前面已经加好对应版本的依赖)。
这个让我百思不得其解,于是在此做一下笔记,如果有人知道这个问题是为什么,希望也可以评论或私信一下我。万分感谢!

参考链接:
[1]:https://blog.csdn.net/tian_yan71/article/details/120348981

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐