一、@EnableConfigurationProperties
@ConfigurationProperties注解在我们之前讲过,他是从配置中读取参数封装给实体类的一个注解。
那么@EnableConfigurationProperties是个啥呢?
@EnableConfigurationProperties 是 Spring Framework 中用于启用基于配置文件的属性绑定功能的注解。它通常与 @ConfigurationProperties 注解一起使用,用于将配置文件中的属性自动绑定到 Java 类的字段上,从而使得你可以在应用程序中方便地使用配置文件中的属性。
- @ConfigurationProperties: 用于标注一个 Java 类,该类的字段会自动绑定到外部配置文件(如 application.properties 或 application.yml)中的相关配置项。通过这种方式,配置项可以被注入到 Spring 容器中。
- @EnableConfigurationProperties: 用于启用对 @ConfigurationProperties 的支持。如果你的配置类是普通的 POJO,并且你希望 Spring 能够自动加载这些配置类,你需要使用 @EnableConfigurationProperties。
也就是说*ConfigurationProperties 里面的参数是配置文件中的参数名,而EnableConfigurationProperties的参数是你要封装的那个类的.class。
读取的文件
使用了@EnableConfigurationProperties
,我们就不用在原本的class
那里把它注册为Bean
,可以统一的在使用的地方注册为Bean
类方便我们管理。而且EnableConfigurationProperties
可以用{}
来包含多个class
。
@Configuration
@EnableConfigurationProperties({AppProperties.class, DatabaseProperties.class})
public class Config {// 其他配置类
}
二、宽松绑定
@ConfigurationProperties绑定属性支持属性名宽松绑定
YML:
绑定类:
我们可以看到,即使是有-这种的拼接,也可以读取到内容,实际上在YML文件中,
_
、-
、大小写
之类的都不影响绑定到实体类中的属性里面,实体类的大小写与配置文件中不是一模一样的也能绑定。