问题1:application.yml文件图标显示异常。
如果第一次使用idea搭建SpringBoot项目的话,会发现IDEA对yml文件的支持不是很友好,也可能是我使用的版本比较旧的原因。
需要添加yml的插件,插件地址:链接: https://pan.baidu.com/s/19jPVc49Oubd_P_44Ab_hgA 提取码: 449v
安装YAML插件的方法:
- 解压下载的插件,通常为zip或jar格式
- 点击 File -> Settings 菜单 , 或Ctrl + Alt + S 快捷键 . 打开设置面板 . 并切换到Plugins插件视图
- 找到插件位置,点击ok,有的插件需要重启才能生效,重启即可。
- 查看刚安装的插件是否关联yml文件,如下图所示。
问题2:application.yml中的配置Tomcat端口不生效
遇到这个问题,可能是直接将原来的application.property文件直接修改了文件后缀名,我就是这么懒,然后配置了三个带有配置属性的配置文件,其中:
application-dev.yml中端口为8080,
application-pro.yml中端口为80,
application-test.yml中端口为8081
然后在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配置文件,里面包含了一些基础的配置,这就是在我们的项目中,即使配置文件是空的,也可以正常启动的原因了。