springboot项目中的bootstrap.yml配置不生效(没有自动提示也没有变绿叶)
1、背景与现象:
(1)新创建一个 springboot项目,添加了 bootstrap.yml 文件,发现文件并没有如预期变成绿色叶子,编写的时候也没有自动提示。
(2)启动的时候,发现端口是8080,并没有如配置上写的端口进行启动——由此发现配置并没有生效,所以是为什么呢。。。
原因之一:
2、问题定位
为什么不生效呢,通过资料查找,原来:
(1)单纯的 springboot 项目只会识别 application.* 配置文件, bootstrap.yml 它不认识啊,所以并没有被识别为配置文件,所以也不会变成绿叶,也没有自动提示了。——对应方法1 : 把配置文件改为 application.*
(2)如果是 springcloud 项目,就能够识别 bootstrap.yml | bootstrap.properties,相同配置以 bootstrap.yml 为准。如果还有 application文件, bootstrap 优先于 application 文件(以 application 为准)
(3)那我刚才建的项目,它是一个 springboot项目,还不是一个springcloud项目,两者要怎样去切换呢?
添加一个依赖,就把 springboot 变成 springcloud 了
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency>
原因之二:
一个最简单的 springboot 项目,
在pom.xml 引入的依赖是:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.5.6</version> </dependency>
在 resources 下面的 application.yml 没有变绿叶
可能只是 idea 没有安装对应的插件,
去plugins 安装一下插件可能就好了。
安装了这个,它就好了。。。。
原因之三
resources文件夹 要标记一下。如果这个 resources 的文件夹是普通的文件夹(没有标识),好像也是不会变绿叶的。
ctrl + shift + s 或者 command + ; 打开这个配置页面,设置一下。
优先级
3、bootstrap.yml, bootstrap.properties, application.yml, application.properties 优先级哪个高,以哪个为准?
加载顺序(优先级): bootstrap > application > 配置中心
bootstrap.yml > bootstrap.properties > application.yml > application.properties
后者覆盖前者
所以,最终,是以配置中心为准?emm
!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性