问题1:application.yml文件图标显示异常。

如果第一次使用idea搭建SpringBoot项目的话,会发现IDEA对yml文件的支持不是很友好,也可能是我使用的版本比较旧的原因。

需要添加yml的插件,插件地址:链接: ​​https://pan.baidu.com/s/19jPVc49Oubd_P_44Ab_hgA​​ 提取码: 449v

安装YAML插件的方法:

  1. 解压下载的插件,通常为zip或jar格式
  2. 点击 File -> Settings 菜单 , 或Ctrl + Alt + S 快捷键 . 打开设置面板 . 并切换到Plugins插件视图
  3. 找到插件位置,点击ok,有的插件需要重启才能生效,重启即可。
  4. 查看刚安装的插件是否关联yml文件,如下图所示。

问题2:application.yml中的配置Tomcat端口不生效

遇到这个问题,可能是直接将原来的application.property文件直接修改了文件后缀名,我就是这么懒,然后配置了三个带有配置属性的配置文件,其中:

application-dev.yml中端口为8080,

application-pro.yml中端口为80,

application-test.yml中端口为8081

【SpringBoot】IDEA中yml文件问题_重启


然后在application.yml文件中指定配置文件

#指定配置文件
spring:
profiles:
active: pro

但是重启之后发现端口一直都是8080,郁闷了半天才发现,虽然文件名改正确了,但是文件里面的内容并没有修改,里面仍然是property文件的内容,这就导致SpringBoot启动的时候加载配置文件并没有找到设置的端口的内容,便使用默认的配置启动了,所以端口一直都是8080。

到这里,不免会有疑问,这里配置出错了,为什么还能正常启动了呢?

带着这个疑问,翻了一下SpringBoot的文档:

24.4特定于配置文件的属性
除application.properties文件外,还可以使用以下命名约定来定义特定于配置文件的属性:application-{profile}.properties。 Environment具有一组默认的配置文件(默认[default])如果没有活动的简档设置中使用。换句话说,如果没有显式激活配置文件,则使用application-default.properties中的属性。
如果您已指定任何文件spring.config.location,则不考虑这些文件的特定于配置文件的变体。spring.config.location如果要使用特定于配置文件的属性,请使用目录 。

原来SpringBoot默认包含了一个application-default.properties配置文件,里面包含了一些基础的配置,这就是在我们的项目中,即使配置文件是空的,也可以正常启动的原因了。