ConfigurationProperties
用法
实体类
public class TestProp {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@Override
public String toString() {
return "TestProp [name=" + name + ", age=" + age + "]";
}
}
配置类
@Configuration
@ConfigurationProperties(prefix="my")
public class TestConfig {
private List<TestProp> prop = new ArrayList<>();
private Map<String,TestProp> propMap = new HashMap<>();
public List<TestProp> getProp() {
return prop;
}
public void setProp(List<TestProp> prop) {
this.prop = prop;
}
public Map<String, TestProp> getPropMap() {
return propMap;
}
public void setPropMap(Map<String, TestProp> propMap) {
this.propMap = propMap;
}
}
配置文件
#转化成List
my.prop[0].name=dev.example.com
my.prop[1].name=another.example.com
my.prop[0].age=dev.example.com
my.prop[1].age=another.example.com
#转化成Map
my.propMap.dev.name=1dev
my.propMap.dev.age=2dev
my.propMap.test.name=1test
my.propMap.test.age=2test
#转化成List
#转化成Map
my:
prop:
- {name: 1, age: 1}
- {name: 11, age: 11}
propMap:
name1:
name: 1
age: 1
name2:
name: 2
age: 2
输出结果
@RunWith(SpringRunner.class)
@SpringBootTest
public class TestCase1 {
@Autowired
private TestConfig config;
@Test
public void test2() {
System.out.println(config.getProp());
System.out.println(config.getPropMap());
}
}
语法
字面量:(数字,字符串,布尔)
- “”:双引号;不会转义字符串里的特殊字符;特殊字符会作为本身表达的意思
name: "zhangsan \n list" #输出: zhangsan 换行 lisi
- ‘’:单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串
name: 'zhangsan \n list' #输出: zhangsan \n lisi
对象、Map(属性键值对)
- 对象k:v方式
friends:
lastName: zhangsan
age: 20
- 行内写法
firends: {lastName:zhangsan,age: 18}
数组(List、Set)
- 对象k:v方式
pets:
- cat
- dog
- pig
- 行内写法
pets: [cat,dog,pig]