每一秒钟的时间都值得铭记

0%

SpringBoot自定义配置

SpringBoot中为用户提供了自定义式配置的解析,我们只需要通过SpringBoot提供的注解,就可以直接将yml或properties配置文件中自定义的属性,以Java面向对象的理解方式解析出来。

项目环境搭建

在此前的多篇博客中,我已经搭建过很多SpringBoot的项目环境,在这里就不重复搭建了,如果有需要的可以参考以前的博客:

自定义配置

SpringBoot的自定义配置非常简单,我们直接在配置文件中写符合配置文件的格式的内容即可。

1
2
3
4
5
6
7
8
9
10
11
my:
properties:
name: 小小
age: 18
hobby:
- 写代码
- 运动
- 阅读
family:
father: 爸爸
mother: 妈妈

在这里,我使用的application.yml配置文件,YML文件结构具有层次性,文件内容可读性高。

YML文件的格式规定,缩进相同的配置为同一层次的内容,每个冒号后面都需要空一格

编写Java类读取配置文件

1
2
3
4
5
6
7
8
9
@Data
@Component
@ConfigurationProperties(prefix = "my.properties")
public class Userproperties {
private String name;
private Integer age;
private List<String> hobby;
private Map<String,String> family;
}
  • SpringBoot中使用@ConfigurationProperties配置来表明这是一个读取配置文件内容的Java类。
  • prefix属性是配置文件配置的属性的前缀,Java类的属性名和配置文件中配置的属性名相同,即可自动注入到对应的属性中去。
  • 集合在配置文件中的书写方式是使用-来表示的,每个-后面都空有一个空格。
  • Map集合的书写方式,是一个key: value形式。

功能测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@RunWith(SpringRunner.class)
@SpringBootTest()
public class UserPropertiesTest {

@Autowired
private Userproperties userproperties;

@Test
public void test(){
System.out.println("用户的姓名是:"+userproperties.getName());
System.out.println("用户的年龄是:"+userproperties.getAge());
System.out.println("用户的爱好是:");
for (String hobby : userproperties.getHobby()) {
System.out.println(hobby);
}
for (Map.Entry<String, String> entry : userproperties.getFamily().entrySet()) {
System.out.println(entry.getKey()+":"+entry.getValue());
}
}
}

输出结果

1
2
3
4
5
6
7
8
用户的姓名是:小小
用户的年龄是:18
用户的爱好是:
写代码
运动
阅读
father:爸爸
mother:妈妈
坚持原创技术分享,您的支持将鼓励我继续创作!
-------------这是我的底线^_^-------------