几种数据格式
- 普通的值(数字,字符串,布尔)就是:key: value
- 对象、Map (属性和值) (键值对)
- 数组 (List、Set)
字符串默认不用加上单引号或者双引号;
"":双引号;不会转义字符串里面的特殊字符; name: “zhangsan \n lisi”:输出;zhangsan 换行 lisi
’’:单引号;会转义特殊字符 据 name: ‘zhangsan \n lisi’:输出;zhangsan\n
lisi
# 对象、Map
person:
age: 18
name: Tom
# 用- 值表示数组中的一个元素
hands:
- left
- right
@value方式
server:
port: 9091
@Value("${server.port}")
public String port;
@Value("${tag}")
private String value
@Value("#{configProperties['tag.msgname']}")
private String value
@Value("${tag.msgname}")
private String value
value 值为空:
- 使用static或final修饰
private static String value; //错误
private final String value; //错误- 类上没有加上@Component(或@service等)
- 没有使用@Autowired注入而是通过new创建实例
@ConfigurationProperties方式
student:
age: 18
name: polly
@Component
@ConfigurationProperties(prefix = "student")
public class Student {
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 "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
@ConfigurationProperties读取参数,需要一个JavaBean 来专门映射配置
使用@ConfigurationProperties,需要配置一个prefix (前缀) 参数, 即写上 key 就可以了
@Environment方式
test:
msg: a123
@Autowired
private Environment env
@RequestMapping(value = "index", method = RequestMethod.GET)
public void index() {
System.out.println(env.getProperty("test.msg"));
}
}