【笔记】SpringBoot项目的配置
前言
SpringBoot项目的配置
配置文件的类型
application.properties
:(缺省值)键值对方式的配置application.yml
:(最常用)Yaml方式的配置。.yml
与.yaml
的配置没有任何区别,只是扩展名不相同application.yaml
:Yaml方式的配置。.yaml
与.yml
的配置没有任何区别,只是扩展名不相同
- 当三个配置文件同时存在时,优先级为
application.properties
>application.yml
>application.yaml
手动配置SpringBoot项目的配置文件
如果IDEA没有自动识别出配置文件,可能会出现编辑器不提示的问题,可以手动添加配置到SpringBoot项目的配置文件配置
File
->Project Structure
Facets
->选中SpringBoot模块->选择配置文件配置按钮->选择添加按钮->选择没有加入到SpringBoot配置文件配置的文件->Open
->OK
->OK
配置选项
服务器端口号配置
1 | server.port=8080 |
SpringBoot日志级别配置
info
:缺省值,只显示信息级别warn
:警告级别(信息量较少)debug
:调试级别(信息量较大)
1 | logging.level.root=info |
多环境的配置
properties配置文件的多环境配置
- 创建多个配置文件,在
-
后添加环境名
1 | - application.properties |
- 在主配置中设置启用的环境
1 | spring.profiles.active=dev |
yml和yaml配置文件的多环境的配置
- 通过
---
将多套配置文件分割- 在第一个区域设置启用的环境,第一个区域是公共的,不会因为环境的切换而被修改
- 其他区域配置不同环境使用的配置
spring.profiles.active
:根据环境名,设置启用的环境spring.profiles
:指定一个环境名,并在下面配置当前环境的所有配置
1 | spring: |
以上写法已过时,应当替换为以下写法
1 | spring: |
启动时指定环境
<file>.jar
:指定需要启动的Jar包--spring.profiles.active=
:指定环境名
1 | java -jar <file>.jar --spring.profiles.active=dev |
可能出现的问题
- 配置完多环境后,执行
package
生命周期之前,最好先执行clean
生命周期 - 配置文件中出现中文有可能导致打包失败,应该在打包之前将IDEA的打包时所用的字符编码改为UTF-8
IntelliJ IDEA
->Proferences
->Editor
->File Encodings
Global Encoding
:UTF-8
Project Encoding
:UTF-8
Default encoding for properties files
:UTF-8
SpringBoot多环境与Maven多环境的兼容
- SpringBoot中的多环境,可以指定项目配置的多环境
- Maven中的多环境,可以指定依赖的多环境
- 通常情况下,为了避免两者的环境冲突,应该让SpringBoot获取Maven中的或环境配置信息,从而改变SpringBoot配置的多环境,起到SpringBoot与Maven共同维护多环境配置的作用
添加插件
- 添加
maven-resources-plugin
插件,使Maven中定义的自定义属性可以被资源文件目录下的配置文件访问
1 | <build> |
Maven中的配置
- 在Maven的多环境配置中添加用于传递给SpringBoot配置文件的自定义属性
1 | <profiles> |
SpringBoot中的配置
- 在SpringBoot的配置文件中获取从Maven传递来的自定义属性的值,根据传递过来的Maven环境名,动态改变SpringBoot的环境名
${profile.active}
:获取从Maven传递过来的自定义参数
1 | spring: |
多级配置
- 如果有出现了多级目录的配置文件,按照如下优先级
jar包所在目录/config/application.yml
>jar包所在目录/application.yml
>src/main/resources/config/application.yml
>src/main/resources/application.yml
jar包所在目录
下的配置文件是为生产环境使用的 src/main/resources
下的配置文件是为开发环境使用的