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文件方式)的主要内容,如果未能解决你的问题,请参考以下文章

springboot配置文件总结

springboot配置文件注解

SpringBoot SpringBoot 配置

SpringBoot入门SpringBoot的配置

SpringBoot入门到精通-SpringBoot自动配置原理

SpringBoot源码分析----SpringBoot自动配置