1.springBoot_配置_yaml文件值获取

1.简单的创建一个springBoot的项目

创建项目的具体步骤,自行搜索。

2.创建一个实体类

package com.lara.bean;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author lara
 * @date 2020/3/1 12:50
 */
@Component
@ConfigurationProperties(prefix = "person")
@Data
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;
}

上述代码使用到了

  • @Data注解,这是lombok的一个注解,使用此注解会自动为类的属性生成setter、getter、equals、hashCode、toString等方法。 在idea中使用lombok需要安装一下lombok的插件

同时在项目中添加如下依赖:

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.20</version>
            <scope>provided</scope>
        </dependency>
  • @ConfigurationProperties:将配置文件中相关属性的值映射到这个组件中,一般为了指明使用那些属性,会指明prifex的值。此注解一般搭配使用@EnableAutoConfiguration注解。意思就是使@ConfigurationProperties注解生效
  • @Component 因为@ConfigurationProperties是容器中的功能,因此需要将person组件添加到容器中

3.在启动类中添加@EnableAutoConfiguration

package com.lara;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author lara
 * @date 2020/2/22 16:40
 */

@SpringBootApplication
@EnableAutoConfiguration
public class HelloWorldApplication {

    public static void main(String[] args) {
        SpringApplication.run(HelloWorldApplication.class, args);
    }
}

4.yaml配置文件添加属性的值

5.测试类测试

import com.lara.HelloWorldApplication;
import com.lara.bean.Person;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

/**
 * @author lara
 * @date 2020/3/1 12:55
 */

@RunWith(SpringRunner.class)
@SpringBootTest(classes = HelloWorldApplication.class)
public class HelloWorldApplicationTest {

    @Autowired
    Person person;

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

6.总结

  1. 使用yaml文件的值给一个对象赋值,需要在对象上使用@ConfigurationProperties
  2. 此对象必须已经注入到容器中
  3. 要使@ConfigurationProperties注解生效,还必须在启动类上搭配使用@@EnableAutoConfiguration