spring boot @ConfigurationProperties加载配置文件
程序员文章站
2024-01-09 18:25:22
...
将指定前缀的配合信息注入到bean中,spring boot 1.5版本以前可以通过location属性指定配置文件路径,1.5以后configurationProperties删除了location属性,可以用@PropertySource来指定要读取的配置文件。
@Component
@ConfigurationProperties(prefix = "person")
@PropertySource("classpath:/env/dev2/application.properties")
public class Person {
private String name;
private int age;
private List<String> address;
private Map<String, String> map;
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
public List<String> getAddress() {
return address;
}
public void setAddress(List<String> address) {
this.address = address;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", address=" + address +
", map=" + map +
'}';
}
}
这里spring会读取/env/dev2/application.properties配置文件中的person前缀的配置信息,address是一个list集合,map是一个map集合。@Compent会把personzhuce成bean,就可以在其他组件中注入使用。
person.name=abc
person.age=10
person.address[0]=北京
person.address[1]=上海
person.address[2]=广州
person.map.a=1
person.map.b=2
@configurationProperties也可以和@Bean配置和使用
@Bean
@ConfigurationProperties(prefix = "person")
public Person getPerson() {
return new Person();
}
也可以从Environment对象中获取applicationContext中的配置信息,
@Component
public class TestEnvironment {
private String name;
@Autowired
Environment environment;
public String getName() {
return environment.getProperty("default.redis.nodes");
}
}
如果发现@ConfigurationPropertie不生效,有可能是项目的目录结构问题,你可以通过@EnableConfigurationProperties(ConnectionSettings.class)来明确指定需要用哪个实体类来装载配置信息。上一篇: java中的锁
推荐阅读
-
Spring Boot 打包分离配置文件
-
通过@PropertySource和@ConfigurationProperties来加载(读取)自定义配置文件
-
spring-boot系列3:配置文件@ConfigurationProperties
-
springboot 使用ConfigurationProperties加载配置文件
-
Spring Boot的配置文件以及获取配置文件中的值
-
【Spring Boot】配置文件@ConfigurationProperties,读取List、Map参数
-
spring boot @ConfigurationProperties加载配置文件
-
Spring Boot 使用@ConfigurationProperties注解获取配置文件中的值
-
spring boot:使用@ConfigurationProperties注解加载配置文件
-
Spring Boot 2从入门到入坟 | 底层注解篇:@ConfigurationProperties配置绑定