02.26 SpringBoot的配置-002

1:配置文件

Springboot使用一个全局的配置文件,文件名固定;

<code>*application.properties**application.yml*/<code>

修改Springboot的默认值;YAML是一种编写配置的语言:

2:YAML的基本语法

1:基本语法

<code>server: port: 8001 path:/hello/<code>空格控制缩进,键值对形式,大小写敏感;单引号会转义特殊字符,双引号就不会了;对象的写法;

<code>friend:name:zhangsanage:19/<code>

4.数组

<code>arrylist:- cat- mao- gou或者:arrlist:[cat,dog,pig]/<code>

3.配置文件值的注入

配置文件的值

<code>person: lastName: zhangsan age: 18 boss: false birth: 2019/3/2 map: {k1:va,k2:ds} list: - lisi - zhangsan3 dog: name: xiaogou age: 29/<code>

主键里面的代码

<code>/*** 将配置文件中的每一个值,映射到这个组件中* @ConfigurationProperties 把本类中的属性和配置文件中的值对应起来* prefix = "person" 去配置文件中的哪个值下面找* */@Component@ConfigurationProperties(prefix = "person")public class Person { private String lastname; private Integer age; private Boolean boss; private Date birth; private Map<string> maps; private List<object> lists; private Dog dog; @Override public String toString() { return "Person{" + "lastname='" + lastname + '\\'' + ", age=" + age + ", boss=" + boss + ", birth=" + birth + ", maps=" + maps + ", lists=" + lists + ", dog=" + dog + '}'; }/<object>/<string>/<code>

将配置文件中的每一个值,映射到这个组件中 @ConfigurationProperties 把本类中的属性和配置文件中的值对应起来,prefix = “person” 去配置文件中的哪个值下面找。同时在使用*@ConfigurationProperties*时,要在配置文件pom.xml中加入这个

<code><dependency> <groupid>org.springframework.boot/<groupid> <artifactid>spring-boot-configuration-processor/<artifactid> <optional>true/<optional>/<dependency>/<code>

最后测试一下

这个类可以做单元测试的

<code>import com.example.demo.bean.Person;import org.junit.jupiter.api.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.junit4.SpringRunner;import org.springframework.boot.test.context.SpringBootTest;/** * SpringBoot单元测试![在这里插入图片描述](https://img-blog.csdnimg.cn/20200217205222964.png) * */@RunWith(SpringRunner.class)@SpringBootTestclass DemoApplicationTests { @Autowired Person person; Dog dog; @Test void contextLoads() { System.out.println(person); }}/<code>

@Autowired覆盖初始化函数跑起来这个类输出中可以看出,类里面的默认值已经被配置文件中的值绑定;

在application.properties文件的配置格式

编码问题: