1.Value
yml文件(port是端口号)
server:
port: 8097
name: 张三
#对象
person:
pname: John
age: 21
#数组
address:
- 北京
- 上海
#纯量
message: '信息 \n 信息' #不会识别转义字符
message1: "信息 \n 信息" #会识别转义字符
编写的测试类
@SpringBootTest
public class yamltest {
@Value("${name}")
private String name;
@Value("${person.pname}")
private String pname;
@Value("${address[0]}")
private String address1;
@Value("${message1}")
private String message1;
@Value("${message}")
private String message;
@Test
public void demo1(){
System.out.println(name);
System.out.println(pname);
System.out.println(address1);
System.out.println(message1);
System.out.println(message);
}
}
运行的结果效果图
2.Environment
注意导包别错(import org.springframework.core.env.Environment;)
测试类代码展示(yml文件还是上面那个)
@SpringBootTest
public class yamltest2 {
@Autowired
private Environment environment;
@Test
public void demo(){
System.out.println(environment.getProperty("name"));
System.out.println(environment.getProperty("person.pname"));
System.out.println(environment.getProperty("address[0]"));
System.out.println(environment.getProperty("message"));
System.out.println(environment.getProperty("message1"));
}
}
控制层效果:
3.@ConfigurationProperties
相当于定义一个实体类去接收yml里面的对象
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String pname;
private int age;
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"pname='" + pname + '\'' +
", age=" + age +
'}';
}
}
yml文件不变
测试代码:
@SpringBootTest
public class yamltest3 {
@Autowired
private Person person;
@Test
public void demo(){
System.out.println(person);
}
}
效果: