这里写自定义目录标题
yaml/yml文件在springboot的使用
yml文件是能够直接被计算机识别的序列化文件,并且容易被程序员阅读。yml文件是以数据为中心的文件,目前被多种编程语言所支持,包括Java,c,python等。
基本语法
1.大小写敏感
2.数据值前必须有空格
3.使用缩进表示层级关系
4.#表示注释
#对象,键值对集合
name: "王五"
person:
name: "张三"
age: 20
person2: {name: "李四"}
#数组
adress:
- benjing
- hongzhou
- shanghai
#纯量
msg1: 'hello \n world'#单引号会忽略转义字符\n,不会换行原样显示
msg2: "hello \n world"#双引号会识别转义字符,输出换行
springboot读取yml文件配置内容方式1
1.配置文件必须叫application.yml(可以改名,默认读取application)
2.在任意程序皆可注入值,使用注解@value
@Value("${name}")
private String name;
@Value("${person.name}")
private String name2;
@Value("${person2.name}")
private String name3;
@Value("${adress[0]}")
private String adress0;
@Value("${adress[1]}")
private String adress1;
@Value("${msg1}")
private String msg1;
@Value("${msg2}")
private String msg2;
@RequestMapping("/hello2")
public String hello2(){
System.out.println(name);
System.out.println(name2);
System.out.println(name3);
System.out.println(adress0);
System.out.println(adress1);
System.out.println(msg1);
System.out.println(msg2);
return name+name2+name3;
}
3.输出如下`
王五
张三
李四
benjing
hongzhou
hello \n world
hello
world
springboot读取yml文件配置内容方式2
1.注入Environment对象方式注入
@Autowired
private Environment env;
2.使用`
System.out.println(env.getProperty("person.name"));
System.out.println(env.getProperty("person2.name"));
System.out.println(env.getProperty("adress[0]"));
3结果
张三
李四
benjing
springboot读取yml文件配置内容方式3
1.目的是方便将yaml对象注入到Java对象中
2.创建一个Person对象,@Component注解表示可被sp(spring)识别
3.使用@ConfigurationProperties,
//表示该person被spring识别,他是一个Bean
@Component
//prefix = "person"指注入值前缀,该处表示yml中person.name和person.age,而不是name和age
@ConfigurationProperties(prefix = "person")
public class Person {
private String name;
private Integer age;
4.使用
首先注入对象
@Autowired
private Person person;
然后调用
System.out.println(person.getName());
System.out.println(person.getAge());
输出
张三
20