Spring Boot 学习(四)— 配置文件
springboot中的配置文件一般分为两种:properties、yaml(yml);其中最为熟悉的是properties文件,今天主要是讲解yaml的使用
一、yaml的基本语法:
- 格式: key: value 注意 “key:” 和 “value” 之间是有空格的
- 大小写敏感
- 缩进表示层级关系
- 缩进不允许tab,允许空格,但是在idea中使用时,可以使用tab
- 缩进的空格不重要,相同的层级只要左对齐即可
- 注释:#
- 字符串无需添加引号"",如果添加的话,请注意单双引号的含义不同,如下:
- 双引号(""):字符串内容不会被转义
- 单引号(’’): 字符串内容会被转义
二、数据类型
- 字面量:单个的、不可再分的值。date、boolean、string、number、null
# 字面量:
k: 字面量
- 对象:键值对的集合。map、hash、set、object
# 对象:k={k1:v1,k2:v2,k3:v3}
k:
k1: v1
k2: v2
k3: v3
- 数组:一组按次序排列的值。array、list、queue
# 数组:k = [v1,v2,v3,v4]
k:
- v1
- v2
- v3
- v4
三、实例:
@Component //将该类放入容器中,这样才能使用springboot带来的功能
@ConfigurationProperties(prefix = "my") //自动配置绑定,将配置文件中的属性对应该类中的属性,进行绑定并赋值
public class Student {
private String name;
private String className;
private String age;
private Map<String,Integer> grade;
private Family family; //是一个对象
private List like;
}
my:
name: 张三
className: 1515
age: 18
grade:
class1: 99
class2: 89
class3: 65
class4: 33
class5: 98
class6: 78
family:
father: 张二
mather: 李四
sister: 无
brother: 张五
like:
- 篮球
- 足球
- 电影
- 英语
四、配置提示
在properties中编辑配置项,系统会为我们提供一些提示,但是我们自动配置绑定时,不会自动提示我们有那些属性,因此开发起来非常不爽,但是springboot为我们提供了该功能,但是要导入依赖,如下:
<!--pom.xml文件中:-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
至此我们就可以在yaml中配置绑定属性时,就会出现提示;但是我们又出现了一个问题,导入该依赖虽然方便了配置,但是对我们的业务没有帮助,在我们项目打包时,会打包多余的代码,怎么办呢?其实springboot为我们提供了相关配置,只需要在pom.xml文件中配置如下代码即可:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<!--主要代码:-->
<exclude>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
至此,在我们打包时便不会对spring-boot-configuration-processor 依赖进行打包