4.SpringBoot_核心配置_yaml和 properties配置文件注入

1. YAML配置文件注入法

yaml文件可以直接给实体类注入整个文件的值

  1. 在springboot项目中的resources目录下新建一个文件 application.yml
  2. pojo目录下创建实体类Dog和实体类Person
  • Dog.java
@Component  //注册bean到容器中
@Data

public class Dog {
    private String name;
    private Integer age;
}
  • Person.java
@Component  //注册bean到容器中
@Data
public class Person {
    private String name;
    private Integer age;
    private Boolean happy;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;

}

注意
  • @Component 注册bean到容器中
  1. 使用yaml配置的方式进行注入,大家写的时候注意区别和优势,我们编写一个yaml配置
person:
  name: wwj
  age: 18
  happy: false
  birth: 1994/04/16
  maps: {k1: v1,k2: v2}
  lists:
    - code
    - music
    - keep
dog: { name: 崽崽, age: 22}  # 对象的行内写法

4.配置文件中将person这个对象的所有值都写好了,现在来注入到类中!

@Component  //注册bean到容器中
@Data
@ConfigurationProperties(prefix = "person")
public class Person {
 
    private String name;
    private Integer age;
    private Boolean happy;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;

}

注意@ConfigurationProperties作用: 将配置文件中配置的每一个属性的值,映射到这个组件中; 告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定 参数 prefix = “person” : 将配置文件中的person下面的所有属性一一对应
5. 、IDEA 提示,springboot配置注解处理器没有找到,此刻需要导入依赖:
4.SpringBoot_核心配置_yaml和 properties配置文件注入

<!--导入配置文件处理器,在编写配置文件时就会提示-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

导入该依赖后。记得重启才会生效,再编写绑定的配置文件会有提示;

  1. 测试
@SpringBootTest
class Springboot02YamlApplicationTests {

    @Autowired
    private Person person;
    
   @Test
   void contextLoads() {
        System.out.println(person);
    }
}

执行结果:发现注入成功:
4.SpringBoot_核心配置_yaml和 properties配置文件注入

将配置文件的key 值 和 属性的值设置为不一样,则结果输出为null,注入失败

2. properties配置文件注入:

person.name=wwj
person.age=20
person.birth=1994/05/19
person.happy=true
person.lists=one,two,three
person.maps.key1=value1
person.maps.key2=value2
person.dog.name = 崽崽

dog.name=崽崽
dog.age=2

运行后,发现 properties 文件在 idea 上中文乱码, 进行如下设置就会不会乱码
4.SpringBoot_核心配置_yaml和 properties配置文件注入

上一篇:Java多态


下一篇:学信网改绑手机号码,但是忘记了老号码怎么办?利用node.js + puppeteer 跑脚本实现改绑手机号