几种数据格式
- 普通的值(数字,字符串,布尔)就是: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")); } }