Springboot框架--配置文件介绍
Spring Boot使用一个全局的配置文件
• application.properties
• application.yml
# 一,路径:
配置文件放在src/main/resources目录或者类路径/config下
# 二,介绍:
yml是YAML(YAML Ain't Markup Language)语言的文件,以数据为中心,比json、xml等更适合做配置文件
• http://www.yaml.org/ 参考语法规范
# 三, 基本语法:
– 使用缩进表示层级关系
– 缩进时不允许使用Tab键,只允许使用空格。
– 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
– 大小写敏感
# 四,YAML 支持的三种数据结构
– 对象:键值对的集合
– 数组:一组按次序排列的值
– 字面量:单个的、不可再分的值
对象(Map)
• 对象的一组键值对,使用冒号分隔。如:username: admin
• 冒号后面跟空格来分开键值;
• {k: v}是行内写法
数组
– 一组连词线(-)开头的行,构成一个数组,[]为行内写法
– 数组,对象可以组合使用
– 复合结构。以上写法的任意组合都是可以
– 字面量
• 数字、字符串、布尔、日期
• 字符串
– 默认不使用引号
– 可以使用单引号或者双引号,单引号会转义特殊字符
– 字符串可以写成多行,从第二行开始,必须有一个单空格缩进。换行符会被转为空格。
– 文档
• 多个文档用 - - - 隔开
注意:
Spring Boot使用 snakeyaml 解析yml文件;
https://bitbucket.org/asomov/snakeyaml/wiki/Documentation#markdown-header-yamlsyntax 参考语法
private String name;//字符串格式 private Integer age;//整数型 private List<Object> list;//list集合 private Map<String,Object> map;//map集合 private Dog dog;//对象
person:
name: hello
age: 18
map: {k1: v1,k2: 12}
list:
- lisi
- zhaoliu
dog:
name: 小狗
age: 12
将配置文件中配置的每一个属性的值,映射到这个组件中
* @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;
* prefix = "person":配置文件中哪个下面的所有属性进行一一映射
* 只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能;
所以这个注解我们一般加在实体类上
但是这个时候,我们就会发现报错了,那么需要我们导入一个实体类的配置文件依赖
<!--导入配置文件处理器,配置文件进行绑定就会有提示-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
# 注意:
properties配置文件在idea中默认utf-8可能会乱码