1. 配置文件的作用
配置文件主要是为了解决硬件编码带来的问题,把可能会发生改变的信息,放在一个集中的地方,当我们启动某个程序时,程序从配置文件中读取一些数据,并加载运行。
硬编码是将数据直接放在源代码中,如果把手机字体大小放在源代码中,那么所有用户使用的都是同一个字体大小,但是不同用户想要的字体大小可能会不相同,所以我们就可以把手机字体大小放在配置文件中,程序启动时,读取配置文件,以用户设置的字体大小来显示。使用配置文件,可以时程序完成用户和应用程序的交互,或者应用程序和其他应用程序的交互。
Spring Boot 支持并定义了配置文件的格式,很多项目或者框架的配置信息也放在配置文件中,例如:
- 项目的启动端口
- 数据库的连接信息(包含用户名和密码的设置)
- 第三方系统的调用密钥等信息
- 用于发现和定位问题的普通日志和异常日志等
Spring Boot 支持三种配置文件:
- application.properties
- application.yml
- application.yaml
我们创建Spring项目时会默认生成一个application.properties配置文件
2. properties
2.1 properties基本语法
properties是以键值对的形式配置的,Key和Value之间使用 = 连接。
例如配置启动端口:
2.2 自定义配置
Spring Boot配置中分为Spring配置,和自定义配置。Spring配置是官方定义好的方定义好的配置,例如这里的server.port,它的含义是设定好的,具体有哪些,可以在Spring官方网站中查询,自定义配置即程序员自己设定的配置。
2.3 获取配置内容
我们可以使用@Value获取配置的值:
注意使用格式。
3. yml
3.1 yml 基本语法
yml是树形结构的配置文件,形式和HTML的标签嵌套相似,yml的基本语法是:"Key: Value"的形式,注意 冒号后要加空格。
运行程序:
可以看到端口号成功被改为9090 .
yml获取配置形式同样使用@Value注解,并且规则相同
3.2 yml配置不同数据类型
yml可以指定配置的数据类型:
#字符串
string.value: Hello
# 布尔值,true或false
boolean.value: true
boolean.value1: false
# 整数
int.value: 10
# 浮点数
float.value: 3.14159
# Null,~代表null
null.value: ~
# "" 空字符串
#, 直接后⾯什么都不加就可以了, 但这种⽅式不直观, 更多的表⽰是使⽤引号括起来
empty.value:
3.3 yml中单引号和双引号的区别
yml中字符串默认不用加上单引号或双引号,如果加上可以表示特殊含义:
获取这三个字符串,发现str3把 \n 理解为了回车。
- 单引号会转义特殊字符,使其失去特殊功能,始终是⼀个普通的字符串
- 双引号不会转义字符串⾥⾯的特殊字符,特殊字符会表⽰本⾝的含义
3.4 配置对象
yml中可以配置对象
注意,只能配置被Spring管理的对象
@ConfigurationProperties("student")
@Component
@Data
public class Student {private Integer id;private String name;private Integer age;
}
@ConfigurationProperties("student")的作用就是把配置信息添加到Spring管理的对象中,同时,我们获取对象的方式和上期讲解的方式相同。
3.5 配置集合
使用方法与配置对象相同。