springboot:springboot的配置(yaml文件方式和properties文件方式)
Posted Dream
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot:springboot的配置(yaml文件方式和properties文件方式)相关的知识,希望对你有一定的参考价值。
1、配置文件
(1)全局的配置文件
名称有两种:
application.properties和application.yml
(2)作用
修改springboot自动配置的默认值(之所以springboot能够自动启动,就是因为springboot的底层已经配置了)
2、YAML(YAML Aint\'s Markup Language)
(1)特点
以数据为中心,比json和xml等更适合做配置文件
(2)yaml配置方式与xml方式对比
yaml方式:
server: port: 8081
xml方式:
<server>
<port>8080</port>
</server>
测试:
要注意:port:后面要加空格
3、YAML语法
(1)基本语法
- k:空格v 表示一对键值对
- 以空格的缩进来控制层级关系,只要是左对齐的一列都指同一层级,如:
server: port: 8081 path: /nnnn
- 属性和值是大小写敏感的
(2)值的写法
字面量(数字、字符串、布尔)
server: port: 8081 path: /nnnn
写法为 k:v:空格 字面量
字符串默认不用加上单引号或者双引号,加上双引号的话,不会转义字符串里面的特殊字符,也就是说特殊字符依旧有效;单引号会转义特殊字符
对象
student: name: zhai age: 23
行内写法:
student:{name: zhai,age: 23}
数组:
用-值的方式来表示数组中的一个元素
students: - zhai - zhang - liu - tom
行内写法:
students: [zhai,zhang,liu,tom]
(3)获取yaml配置文件中的数据
定义两个实体类,其中student实体类的属性包括Course类:
@Data @Component @ConfigurationProperties(prefix = "student")//告诉springboot将本类中的所有属性和配置文件的相关配置进行绑定 public class Student { //prefix:配置文件中哪一个名称下面的属性进行一一映射 private String sname; private int age; private Map<String,Object> maps; private List<Object> list; private Course course; }
@Data public class Course { private String courseno; private String coursename; }
创建yaml配置文件:
student: sname: zhai age: 12 maps: {k1: 12,k2: 13} list: - zhai - zhang course: courseno: 202007 coursename: javaweb
创建properties文件:
#配置student student.age=12 student.sname=zhai student.maps.k1=1 student.maps.k2=2 student.list=a,b,c student.course.courseno=202007 student.course.coursename=java
测试类:
//可以在测试期间很方便地类似编码一样进行自动注入等容器的功能 @SpringBootTestclass Springboot03ApplicationTests { @Autowired Student student; @Test void contextLoads() { System.out.println(student); } }
需要导入的依赖:配置文件处理器,配置文件进行绑定会有提示
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <version>2.2.1.RELEASE</version> </dependency>
(4)properties文件中文乱码的解决方案:
以上是关于springboot:springboot的配置(yaml文件方式和properties文件方式)的主要内容,如果未能解决你的问题,请参考以下文章