1. 首先是写一个Person类,里面包含着各种的数据类型,包括基本数据类型和引用数据类型,具体的Person.java代码如下:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92package com.com; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; import java.util.Map; //将配置文件中配置的每一个属性的值映射到这个组件中, 需要配合一个注解 //prefix = "person"表示配置文件下的哪一个下面的所有顺序进行一一的映射 //此外需要注意的是这个组件要想起作用那么需要将这个组件加入到spring的容器中,才可以使用容器中的功能 @Component @ConfigurationProperties(prefix = "person") public class Person { private String lastname; private Integer age; private Boolean boss; private Date birth; //看一下yml配置文件是否能够放入Map和List对象 Map<String, Object> maps; List<Object> lists; private 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 getBoss() { return boss; } public void setBoss(Boolean boss) { this.boss = boss; } 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; } @Override public String toString() { return "Person{" + "lastname='" + lastname + ''' + ", age=" + age + ", boss=" + boss + ", birth=" + birth + ", maps=" + maps + ", lists=" + lists + ", dog=" + dog + '}'; } }
Dog.java代码如下:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40package com.com; public class Dog { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Dog{" + "name='" + name + ''' + ", age=" + age + '}'; } //假如写了下面的有参数的构造器那么一定要写上五参数的构造器否则互获取不了值 //或者两个都可以不写 public Dog(String name, Integer age) { this.name = name; this.age = age; } public Dog(){ } }
需要注意以下几个问题:
① 需要使用一个 @ConfigurationProperties(prefix = "person")注解来将配置文件中配置的每一个属性的值映射到这个组件中,这个注解有一个参数是prefix规定yml配置文件下的哪一个属性下开始顺序一一进行映射(告诉SpringBoot将本类中的所有属性和配置文件中相关的值进行绑定)
② 此外要想这个注解起作用那么还需要将这个注解起作用那么还需要将这个注解加入到容器中,这样才可以使用容器中的功能,所以需要加上@Component注解
③ idea工具还有一个提示就是需要导入一个依赖,我们点击超链接拷贝依赖到pom.xml文件中那么在yml配置文件中写的时候就有提示了
④ 重新运行一下主程序
2. 使用springboot的单元测试类来进行测试,看一下能否获取yml配置文件中的值,具体的代码如下:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21package com.example; import com.com.Person; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; //springboot的单元测试 //可以在测试期间很方便的类似编码一样进行自动注入等容器的功能 import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class Springboot01QuickApplicationTests { @Autowired Person person; @Test public void contextLoads() { System.out.print(person); } }
3. yml配置文件如下:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16server: port: 8029 person: lastname: zhangsan age: 18 boss: false birth: 2017/2/12 lists: - lisi - zhaoliu maps: {k1: v1, k2: v2} dog: name: xiaogou1 age: 2
最后
以上就是优美自行车最近收集整理的关于获取yml配置文件的值的全部内容,更多相关获取yml配置文件内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复