SpringBoot配置:yaml介绍

Posted 宋songsong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot配置:yaml介绍相关的知识,希望对你有一定的参考价值。

一、介绍yml  

1、Spring Boot使用一个全局的配置文件(配置文件的名字是固定的)

  (1)application.properties

  (2)application.yml

2、配置文件放在src/main/resources目录或者类路径/config下

3、yml是YAML(YAML Ain‘t Markup Lanaguage)语言文件,以数据为中心,比josn,xml更适合做配置文件 。http://http:www.yaml.org参考语法规范。

 

二、YAML语法:

1、基本语法:

  k:(空格)v   : 表示一对键值对(空格必须有

  以空格的缩进来控制层级关系,只要是右对齐的一列数据,都是一个层级的 

       属性和值也是大小写敏感的。

server:
  port: 8081
  path:/hello

2、值的写法

  (1)普通的值(数字、字符串、布尔值)

  k: v    : 字面直接来写。

  字符串默认不用加单引号或双引号;

  如果使用双引号:字符串中有特殊字符的话,不能识别特殊字符,不会进行转义。

  例如:     

  name: "zhangsan lisi"      输出:     zhangsan  换行   lisi

  如果使用单引号,特殊字符会转成普通字符输出。

  输出:zhangsan lisi

 

  (2)Map

  k: v :在下一行来写属性和值的关系,注意缩进

  对象还是k: v的方式

friends:
    lastName: zhangsan
    age: 20

  行内写法:

friends: {lastName: zhangsan,age: 20}

 数组(List、Set):

  用 - 值表示数组中的一个元素:

pets:
    - cat
    - dog
    - pig

行内写法:

pets: [cat,dog,pig]

 

 

示例:

bean文件

  

package com.song.bean;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**j将配置文件中每一个属性值映射到这个数组中,
 *ConfigurationProperties告诉Spring boot将本类中所有属性和配置文件中相关的配置绑定
 * prefix = "person":配置文件中那个下的所有属性进行一一映射
 *只有这个组件是容器中的组件,才能使用容器提供的功能
 * Created by Administrator on 2018/6/12 0012.
 */
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    private  String lastName;
    private  Integer age;
    private Boolean boos;
    private Date birth;

    private Map<String,Object> maps;
    private List<Object> lists;

    private Dog dog;


    @Override
    public String toString() {
        return "Person{" +
                "lastName=‘" + lastName +  +
                ", age=" + age +
                ", boos=" + boos +
                ", birth=" + birth +
                ", maps=" + maps +
                ", lists=" + lists +
                ", dog=" + dog +
                };
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Boolean getBoos() {
        return boos;
    }

    public void setBoos(Boolean boos) {
        this.boos = boos;
    }

    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }

    public Map<String, Object> getMaps() {
        return maps;
    }

    public void setMaps(Map<String, Object> maps) {
        this.maps = maps;
    }

    public List<Object> getLists() {
        return lists;
    }

    public void setLists(List<Object> lists) {
        this.lists = lists;
    }

    public Dog getDog() {
        return dog;
    }

    public void setDog(Dog dog) {
        this.dog = dog;
    }
}

 yaml文件

person:
   lastName: zhangsan
   age: 18
   boss: true
   birth: 2017/12/12
   maps: {name: 小花,age: 2}
   lists:
     - lisi
     - zhaoliu
   dog:
    name: 小花
    age: 2    

pom.xml的依赖配置

<!--导入配置文件处理器,配置文件进行绑定就会有提示-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

最后测试打印结果为:

Person{lastName=‘zhangsan‘, age=18, boos=null, birth=Tue Dec 12 00:00:00 GMT+08:00 2017, maps={name=小花, age=2}, lists=[lisi, zhaoliu], dog=Dog{name=‘小花‘, age=2}}

  

对应的properties文件配置

person.lastName=zhangsan
person.age=28
person.maps.k1=xiahua
person.maps.k2=lisi
person.dog.name=xiaohua 
person.dog.age=2
person.lists=a,b,c

 






以上是关于SpringBoot配置:yaml介绍的主要内容,如果未能解决你的问题,请参考以下文章

3.springboot:springboot配置文件(配置文件YAML属性文件值注入<@Value@ConfigurationProperties@PropertySource,@Im(代码片

3springboot:springboot配置文件(配置文件YAML属性文件值注入<@Value@ConfigurationProperties@PropertySource,@Imp(代码片

Springboot之YAML快速入门教学

SpringBoot解析指定Yaml配置文件

全栈编程系列SpringBoot整合Shiro(含KickoutSessionControlFilter并发在线人数控制以及不生效问题配置启动异常No SecurityManager...)(代码片段

最全面的SpringBoot教程——SpringBoot配置文件