SpringBoot中配置文件可使用占位符处理其值,如果没有值,可以设置默认值:
设置全局配置文件application.properties:
配置文件中随机生成名字、随机生成年龄、dog.name能获取主人名就直接获取,不能获取就生成默认名
server.port=8081
person.last-name=方新德${random.uuid}
person.age=${random.int}
person.birth=2017/10/30
person.boss=false
person.maps.k1=v1
person.maps.k2=l4
person.lists=a,b,c
//获取last-name值
person.dog.name=${person.last-name:fangchao}_dog
person.dog.age=10
配置文件与对应的bean绑定
@Component
@ConfigurationProperties(prefix = "person")//只能从默认的全局文件中获取
public class Person {
private String lastName;
private Integer age;
private Boolean boss;
private Date birth;
private Map<String,Object> maps;
private List<Object> lists;
private Dog dog;
//=================get/set方法省略===============
@Override
public String toString() {
return "Person{" +
"lastName='" + lastName + '\'' +
", age=" + age +
", boss=" + boss +
", birth=" + birth +
", maps=" + maps +
", lists=" + lists +
", dog=" + dog +
'}';
}
}
编制测试类:
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBoot02ConfigApplicationTests {
@Autowired
Person person;
@Test
public void contextLoads() {
System.out.println(person);
}
}
打印结果:
{lastName='方新德0a97daf2-7dcb-4c5b-ba1c-12186f3d4306', age=1664228409, boss=false, birth=Mon Oct 30 00:00:00 CST 2017, maps={k1=v1, k2=l4}, lists=[a, b, c], dog=Dog{name='方新德f6e5a6c1-75ae-4558-b507-1f96f6421c87_dog', age=10}}