SpringBoot——配置文件占位符

SpringBoot: 2.2.1.RELEASE

IDE: IDEA

使用模块为WEB模块和测试模块

在配置文件中我们有的时候会用到占位符,格式是**${索引值:[默认值]}** 这么说可能不好理解,下面我们详细说明

  1. 随机数
 ${random.int}              // 随机生成一个int类型的数
 ${random.int(10)}          // 生成一个10以内的int类型的数
 ${random.int[12,19]}       // 生成一个12到19的int类型的数
 ${random.long}             // 随机生成一个long类型的数
  1. 获取声明后的值
 person.name=黎明                       # 声明一个值
 person.maps.k1=${person.name}          # 调用声明后的值,如果调用的值没有声明,则会把表达式整体当成字符串值调用
 person.school.name=${person.name}曙光  # 获取声明的值然后拼接
  1. 判断取值
 person.name=黎明                       # 声明一个值
 
 # 通过冒号分割,前面是声明的节点,后面是默认值,判断如果声明的节点存在则获取值,如果没有则使用默认值
 person.lists=${person.hello:list1},${person.name:list2}

下面是使用结果:

注入对象

@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private Integer age;
    private Boolean student;
    private Date birthDate;
    private Map<String,Object> maps;
    private List<Object> lists;

    private School school;
     // getter 、setter 和toString省略
}

配置文件

person.name=黎明
person.age=${random.int(10)}
person.student=true
person.birthDate=2019/11/14
person.maps.k1=${person.name}
person.maps.k2=${person.hello}
person.lists=${person.hello:list1},${person.name:list2}
person.school.name=${person.name}曙光
person.school.start-date=2019/09/01

运行结果

Person {
	name = '黎明', 
	age = 3, 
    student = true,
    birthDate = Thu Nov 14 00:00:00 GMT+08:00 2019, 
	maps = {
		k1 = 黎明,
		k2 = $ { person.hello }
	}, 
	lists = [list1, 黎明], 
	school = School {
		name = '黎明曙光', 
		startDate = Sun Sep 01 00: 00: 00 GMT + 08: 00 2019
	}
}

从上面我们可以看出我们的占位符生效了。

你可能感兴趣的:(SpringBoot,配置文件)