转自:https://www.codeneko.cn/?p=175
在SpringBoot使用@ConfigurationProperties注解读取yml/properties配置文件参数
1. 添加依赖
在pom文件中添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
2. 在yml/properties文件中添加配置
这里使用yml格式配置文件配置
config: entity: cat: name: Tomcat sex: male age: 9
3. 创建类
创建一个类,并且添加注解@ConfigurationProperties和指定的prefix。
类必须实现setter方法,否则无法配置对象对应的属性变量!!!
@ConfigurationProperties(prefix = "config.entity.cat") @Component public class Cat { private String name; private String sex; private int age; private String family; public void setName(String name) { this.name = name; } public void setSex(String sex) { this.sex = sex; } public void setAge(int age) { this.age = age; } public void setFamily(String family) { this.family = family; } // 省略getter @Override public String toString() { return "Cat{" + "name='" + name + '\'' + ", sex='" + sex + '\'' + ", age=" + age + ", family='" + family + '\'' + '}'; } }
4. 测试
控制台输出对象信息:
Cat{name='Tomcat', sex='male', age=9, family='null'}
可以看到在配置文件中所配置的参数都正确的注入到Cat对象中,而在配置文件中没有配置的family属性默认为null。