@ConfigurationProperties 读取配置文件值
时间: 2023-10-12 18:19:02 浏览: 113
@ConfigurationProperties 是 Spring Boot 提供的一个注解,用于将配置文件中的属性值自动绑定到对应的 Bean 上。其作用类似于 @Value 注解,但更加灵活,可以将多个属性值绑定到一个 Bean 上,也支持将属性值绑定到一个 List 或 Map 中。
举个例子,假设我们有一个配置文件 application.properties,其中定义了如下属性:
```
myapp.name=My App
myapp.version=1.0.0
myapp.authors[0]=John Doe
myapp.authors[1]=Jane Doe
```
我们可以定义一个对应的配置类 MyConfig,使用 @ConfigurationProperties 将配置文件中的属性值绑定到该类上:
```
@ConfigurationProperties(prefix = "myapp")
public class MyConfig {
private String name;
private String version;
private List<String> authors;
// getters and setters
}
```
在该类中,prefix 属性指定了要绑定的属性的前缀,即 myapp,Spring Boot 会自动将该前缀下的属性值绑定到对应的属性上。我们也可以通过 @Value 注解逐个绑定属性值,但这样会比较麻烦,而且不支持绑定 List 或 Map 类型的属性。
相关问题
@ConfigurationProperties读取一个List
和一个Map的示例类Config1Properties的区别是什么?<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [【Spring Boot】配置文件@ConfigurationProperties,读取List、Map参数](https://blog.csdn.net/sayyy/article/details/83657119)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [配置文件@ConfigurationProperties读取List、Map参数](https://blog.csdn.net/weixin_34702885/article/details/115508591)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
@ConfigurationProperties读取区分大小写吗
@ConfigurationProperties读取时是不区分大小写的。无论是在配置文件中还是在Java类中定义的属性名,都会被转换为小写形式进行匹配。如果匹配不到对应的属性,那么该属性的值就会为null。
举个例子,如果在配置文件中定义了demo.ABC=123,而在Java类中定义了一个名为abc的属性,那么@ConfigurationProperties注解会自动将配置文件中的demo.ABC映射到Java类的abc属性上,其值为123。
阅读全文