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整合Shiro(含KickoutSessionControlFilter并发在线人数控制以及不生效问题配置启动异常No SecurityManager...)(代码片段