赞
踩
Yaml文件是用Yaml语言写的文件,Yaml语言是一种可读性高,更注重数据表达,可扩展的一种数据标记语言。Yaml文件以.yaml或者.yml为后缀,例如application.yml、application.yaml都可以。非常适用于作为配置文件使用。Spring Boot就是可以用application.yml作为配置文件。
比如spring boot的配置:
server:
port: 8088
#path: /hello-world #号进行注释
#port配置和path配置属于同一层级,server配置是他们的上层。
字面量指得是普通的值,例如数字,字符串,布尔值,日期等
person:
age: 23 #直接写数字23
name: Michael Jordan #直接写字符串
flag: false #写布尔值。
例子:
person:
#下面会成为Michael 换行 Jordan,因为特殊字符换行符生效了。
name: "Michael \n Jordan"
#下面会成为Zhang \n San ,因为换行符\n被转义了,只是普通的字符。
fatherName: 'Zhang \n San'
person:
firstName: Jordan
lastName: Michael
age: 45
#也可以这样写
person: {firstName: Jordan,lastName: Michael,age: 45}
有两种写法:
例子:
#第一种写法:
person:
-ZhangSan
-LiSi
-WangWu
#第二种行内写法:
person: [ZhangSan,LiSi,WangWu]
以下对一个比较复杂的对象进行配置的一个例子:
//Teacher类 @Setter //这些是lombok框架的注解。 @ToString @ConfigurationProperties(prefix = "teacher") @Component //只有把Teacher 注册成容器中的主键,被容器管理,才能对其进行配置。 public class Teacher { //名字 private String name; //年龄 private int age; //学校名 private String schoolName; //伴侣 private Person person; //生日 private Date birthday; //true means man,false means woman private boolean sex; //宠物 private List<Pet> pets; //学生 private Student[] students; //其他 Map<String,Object> others; } //Student类 @Setter @ToString public class Student { private String name; private int age; private boolean sex; } //Pet类 @Setter @ToString public class Pet { private String name; } //Person类: @Component @Data public class Person { private String name; }
下面是对应的yml配置:
teacher: name: 张三 age: 23 schoolName: 清华大学 birthday: 1980/12/2 sex: true person: name: 小兔子 #配置pets属性 pets: - {name: dog} - {name: cat} - {name: rabbit} students: - name: 李四 age: 18 sex: true - name: 王五 age: 19 sex: false others: hobby: 唱跳Rap篮球 favourateFood: 小盘鸡丁
测试代码:
@SpringBootTest class SpringbootstudyApplicationTests { @Autowired private Teacher teacher; @Test void test() { System.out.println(teacher); } } //执行结果: //Teacher(name=张三, age=23, schoolName=清华大学, person=Person(name=小兔子), birthday=Tue Dec 02 00:00:00 CST 1980, sex=true, pets=[Pet(name=dog), Pet(name=cat), Pet(name=rabbit)], students=[Student(name=李四, age=18, sex=true), Student(name=王五, age=19, sex=false)], others={hobby=唱跳Rap篮球, favourateFood=小盘鸡丁}) //可以看出配置文件的内容都配置上去了,详细看此例子和上述讲的语法,基本就能熟悉yaml语法。
关于例子中用到的@ConfigurationProperties注解的详细讲解可以看博主的另外一篇文章:
@Value与@ConfigurationProperties注解的讲解与区别
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。