06 spring boot yaml语法和demo 范例 例子

github地址包含文档和demo

总览:

0 配置文件介绍

1  2 基本语法 字符串 对象(map) list的写法在配置文件中的写法

3 如何通过配置文件,将值注入进去一个对象中,需要添加什么依赖包configuration-processor,

 

 

 

 

 

配置文件

Spring boot使用两种全局配置文件

Application.properties

Application.yml

这俩文件的名字都是固定的

配置文件的作用:修改spring boot配置的默认值。

YAML YAML aint markup language

这个不是一个标记语言 或者说是一个标记语言无所谓的。

以数据为中心,比json xml更适合做配置文件。

 

Application.yml跟application.properties在同一个目录之下,都属于resources

比如用application.yml配置端口

注意:这类的application.yml的文件名打错了,注意要打对。

 

 

1 基本语法

K: v 表示一对键值对,冒号后面必须有空格

用所进来表示层级关系;属性和值都是大小写敏感的;跟python是一样的语法

 

2 值得写法

2.1字面值:数字 字符串 布尔值

        举例 字符串的写法  字符串的写法默认是不需要加上单双引号的

        Name: zhangsanlisi

        加双引号:不会转义特殊字符  name:”zhangsan \n lisi”

        加单引号:会转义特殊字符

2.2 对象

        对象的写法就是在k 的下一行直接写该对象的属性。

        例如:

        Friends:

                 Age: 12

                 Name: sjh

        还可以改成行内写法:friends: {name: sjh,age: 12}

2.3 数组

        写法就是加横杠

        Pets:

  • Cat
  • Dog
  • Pig

也可以是行内写法pets: [cat,dog,pig]

 

 

3 实战演练,将配置文件中的值,绑定进去bean中,那就很强。

  1. package com.example.springbootyamltest.bean;  
  2.   
  3. import java.util.Date;  
  4. import java.util.List;  
  5. import java.util.Map;  
  6.   
  7. public class Person {  
  8.     private String name;  
  9.     private Integer age;  
  10.     private boolean boss;  
  11.     private Date birth;  
  12.     private Map<String,Object> maps;  
  13.     private List<Object> lists;  
  14.     private Dog dog;  
  15.   
  16.   
  17.     @Override  
  18.     public String toString() {  
  19.         return "Person{" +  
  20.                 "name='" + name + '\'' +  
  21.                 ", age=" + age +  
  22.                 ", boss=" + boss +  
  23.                 ", birth=" + birth +  
  24.                 ", maps=" + maps +  
  25.                 ", lists=" + lists +  
  26.                 ", dog=" + dog +  
  27.                 '}';  
  28.     }  
  29.   
  30. }  

 

这是application.yml配置文件

  1. server:  
  2.   port: 8081  
  3.   
  4. person:  
  5.   name: gx  
  6.   age: 12  
  7.   boss: true  
  8.   birth: 2020/02/02  
  9.   maps: {k1: v1,k2: valsss1}  
  10.   list:  
  11.    - lisi  
  12.    - zhaoliu  
  13.   dog:  
  14.     name: tom  
  15.     age: 11  

 

Person.java 文件

  1. package com.example.springbootyamltest.bean;  
  2.   
  3. /* 
  4. 将配置文件中每一个值都隐射到这个类中 
  5. 结合一个注解ConfigurationProperties 这个注解告诉spring boot 类中所有的属性,和配置文件中的一一绑定 
  6. *   --prefix前缀的意思是,我绑定配置文件中哪一个前缀开头的配置 
  7. 如果遇到提示:spring boot configuration annotation processor not found in classpath 就是没有依赖配置处理包 
  8. 这个包可以提供配置时候给出提示 
  9. * 
  10. 只有说这个Person组件是容器中的组件,才可以提供容器提供的功能configuratonproperties 所以加上@component注解 
  11. * */  
  12. @Component  
  13. @ConfigurationProperties(prefix = "person")  
  14.   
  15. public class Person {  
  16.     private String name;  
  17.     private Integer age;  
  18.     private boolean boss;  
  19.     private Date birth;  
  20.     private Map<String,Object> maps;  
  21.     private List<Object> lists;  
  22.     private Dog dog;  
  23.   
  24. }  

Test类

  1. package com.example.springbootyamltest;  
  2.   
  3. import com.example.springbootyamltest.bean.Person;  
  4. import org.junit.jupiter.api.Test;  
  5. import org.springframework.beans.factory.annotation.Autowired;  
  6. import org.springframework.boot.test.context.SpringBootTest;  
  7.   
  8. /* 
  9. *Sprning boot单元测试功能 
  10. *可以再测试期间很方便的类似编码一样进行自动注入的功能 
  11. * */  
  12.   
  13. @SpringBootTest  
  14. class SpringbootYamlTestApplicationTests {  
  15.   
  16.     @Autowired  
  17.     Person person;  
  18.   
  19.     @Test  
  20.     void contextLoads() {  
  21.         System.out.println(person);  
  22.     }  
  23.   
  24. }  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值