3 | SpringBoot配置完application.yml后如何注入配置文件的值

首先,我们定义一个JavaBean(实体类)
@Component
@ConfigurationProperties(prefix = "person")
public class Person {

    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;

注解解释:
1. @Component:代表这是一个组件,只有这个组件是容器中的组件,才能使用容器提供的@ConfigurationProperties功能;
2. @ConfigurationProperties:为了将配置文件中配置的每一个属性的值映射到这个组件中,配置此注解,告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;
3. prefix = "person":配置文件中 person 下面的所有属性进行一一映射

然后,在pom.xml中我们可以导入配置文件处理器的依赖,以后编写配置就有提示了
<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-configuration-processor</artifactId>
		<optional>true</optional>
</dependency>

注意,Reimport maven 后记得重新启动一下项目,代码提示才生效

最后,配置application.yml
person:
    lastName: hello
    age: 18
    boss: false
    birth: 2017/12/12
    maps: {k1: v1,k2: 12}
    lists:
      - lisi
      - zhaoliu
    dog:
      name: 小狗
      age: 12
测试一波
@SpringBootTest
class Springboot7ApplicationTests {

    @Autowired
    Person person;

    @Test
    void contextLoads() {
        System.out.println(person.toString());
    }
}

在这里插入图片描述
ok,木有问题
上一篇:2 | SpringBoot全局的配置文件application.yml之YAML简介
下一篇:4 | SpringBoot的@ConfigurationProperties和@Value的区别

你可能感兴趣的:(SpringBoot)