配置文件及快速启动原理
前言
在上一节中我们进行了SpringBoot的初体验,初步体会到了对于使用者的简洁友好性。本节将会讲解SpringBoot的配置文件使用和启动的原理。
配置文件讲解
在初始化项目中,我们看到在resources
目录下有一个application.properties
文件,properties配置文件的用法大家肯定很熟悉了,所以这不是我们的重点。SpringBoot支持并推荐YAML
语法的配置文件,YAML
配置文件的后缀名为.yml
。
关于YAML
语法介绍
相比较于properties
文件平铺式地展示,yml
文件则更像是立体的树状机构,阅读起来更加直观。在使用上有点类似于JSON的格式,采用key: value
的形式,冒号后面要加一个空格。基本语法如下:
- 大小写敏感
- 使用换行空格缩进表示层级关系,相同层级的缩进数需相同
- 数组值采用下一层级
- value
表示,多个value换行同层级展示即可,支持嵌套数组 '#'
符号表示注释
properties与yml示例比较
A.B1.C1=x
A.B1.C2=xx
A.B1.C3=xxx
A.B2.C1=y
A.B2.C2=yy
#数组表示
testArray[0][=1
testArray[1]=2
testArray[2]=3
A:
B1:
C1: x
C2: xx
C3: xxx
B2:
C1: y
C2: yy
#数组表示
testArray:
- 1
- 2
- 3
可以看到,无论是在简洁性或是直观性上yml
都更为优秀。
配置文件参数设置
现在我们可以新建一个application.yml
文件来替换原有的application.properties
文件。在其中设置所需的参数,而参数可以分为框架定义参数和自定义参数两类。对于框架定义参数SpringBoot启动会自动去加载,那么自定义参数我们又该如何使用呢?SpringBoot提供了@Value
和@ConfigurationProperties
两种注解来注入配置文件中自定义参数的值,直接上代码:
application.yml
#修改web端口为8888
server:
port: 8888
#自定义参数
my-param:
hello: Hello
world: World
@Value方式
@Value(value = "${my-param.hello}")
private String hello;
@Value(value = "${my-param.world}")
private String world;
@ConfigurationProperties方式
/**
* 使用@ConfigurationProperties读取配置文件中自定义参数
* 'prefix'指定参数前缀名
* @author yingKang
* @Company Java编程之道
*/
@Component
@ConfigurationProperties(prefix = "my-param", ignoreUnknownFields = true)
public class MyParamConst {
private