配置文件数据注入的流程
1 导入配置文件处理器,pom.xml 添加依赖spring-boot-configuration-processor
2 JavaBean (Person.class Dog.class)定义实体类
3 配置文件 application.yml或application.properties
4 在test(单元测试)运行TestPersonApplicationTests.class观察结果
一. 添加依赖
新建springboot maven项目并在pom.xml中添加spring-boot-configuration-processor
1 | <!-- 导入配置文件处理器 --> |
二. 定义实体类
1 | //Person.java |
Map<String,Object>
将唯一的键映射到值List<Object>
:继承于Collection和一个 List实例存储一个有序集合的元素。
Collection接口:允许你使用一组对象,是Collection层次结构的根接口。
2.1 小技巧
ALT键+Ins键
选择Getter And Setter构建getXXX()和setXXX()方法
选择ToString构建toString()
2.2 注解详解
@Component
向容器注入对象.
@ConfigurationProperties(prefix = “person”)@ConfigurationProperties
告诉StringBoot将本类中的所有属性和配置文件中相关的配置进
行绑定。prefix = "person"
配置文件中person下的所有属性进行一一映射
只有这个组件是容器中的组件,才能使用容器提供的@ConfigurationProperties功能@Validated
校验信息,可以直接在bean属性上配置,也可以在properties中配置。
2.3 加载不同的配置文件
加载默认配置
@ConfigurationProperties(prefix = “person”)默认从全局配置文件中获取值,加载指定配置
properties文件格式
@PropertySource(value={“classpath:person.properties”})
@PropertySource 只支持XXX.properties文件,不支持XXX.yml文件。加载指定配置
yml文件格式
通过PropertySourcePlaceholderConfigurer来加载yml文件,暴露yml文件到spring environment
官方文档https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-yaml-shortcomings
1 | // 加载YML格式自定义配置文件 |
三. 配置文件
配置application.properties与application.yml任意其一即可,两者均是配置文件功能相同
3.1 配置application.properties
1 | #配置端口 |
3.2 配置application.yml
1 | server: |
四. 运行测试
在test(单元测试)运行TestPersonApplicationTests.class观察结果
文件格式
1 | /** |
结果如下
1 | 2019-07-28 14:48:23.405 INFO 19108 --- [ main] c.c.TestPersonApplicationTests : Started TestPersonApplicationTests in 5.158 seconds (JVM running for 7.158) |
可以看到已经成功了。