读取yml的单一变量
在属性名上使用
在指定的属性上使用org.springframework.beans.factory.annotation包下的@Value注解,在注解中使用 “${变量名}” 的方式定位到yml数据。
yml获取变量
读取yml文件的引用类型数据
既然是引用类型,那么就需要创建一个类来映射这些信息
- 先看看yml里面的数据
human:
age: 10
name: asher
height: 180cm
- 来看看对应的类
@Data
@Component(value = "human")
@ConfigurationProperties(prefix = "human")
public class Human {
private int age;
private String name;
private String height;
}
/**
说明:
1. 由于需要让spring来帮助我们自动装配,所以需要@Component注解来声明这是一个Spring Bean
2. Spring装配Bean需要有Getter和Setter方法,这里使用lombok提供的@Data注解
3. 要在类上添加@ConfigurationProperties(prefix = "human")注解来定位到yml文件中的引用类型对象
4. 创建的类的属性需要和yml中的key名称相同,如果不同,则读取为null,解决办法是在指定的属性上使用org.springframework.beans.factory.annotation包下的@Value注解,在注解中定位到yml数据。例如
@Value("${human.name}")
private String nae; //将上面的name改成nae
*/
引用类型嵌套引用类型
- 先看看yml里面的数据
human:
age: 10
name: asher
height: 180cm
children:
baby1: asher-baby1
baby2: asher-baby2
- 来看看对应的类
@Data
@Component(value = "human")
@ConfigurationProperties(prefix = "human")
public class Human {
private int age;
private String name;
private String height;
private Children children;
}
@Data
@Component
@ConfigurationProperties(prefix = "human.children")
class Children{
private String baby1;
private String baby2;
}
主程序:
@SpringBootApplication
public class Main {
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(Main.class, args);
Human human = (Human)run.getBean("human");
System.out.println(human);
}
}