使用@ConfigurationProperties注入属性
maiaimei 2024/6/15
@ConfigurationProperties 注解用于将配置文件中的属性值绑定到Java对象上。
使用 @ConfigurationProperties 注入属性的方式:
- 使用 @Component + @ConfigurationProperties 标记类
- 使用 @Bean + @ConfigurationProperties 标记方法
- 使用 @ConfigurationProperties 标记普通类,使用 @EnableConfigurationProperties 激活该普通类
@EnableConfigurationProperties 工作原理:
- @EnableConfigurationProperties 导入了 EnableConfigurationPropertiesRegistrar
- EnableConfigurationPropertiesRegistrar 功能是读取配置文件并转换为 Bean 对象,EnableConfigurationPropertiesRegistrar 利用 ImportBeanDefinitionRegistrar 动态注册了 ConfigurationPropertiesBindingPostProcessor。
- 在 getBean -> createBean -> applyBeanPostProcessorsBeforeInitialization -> bind 方法中根据当前实例化的 Bean 上的 @ConfigurationProperties 完成注册。
注意:在测试类中,如果使用 @ConfigurationProperties 无法注入属性,请检查是否已经加载指定配置文件,是否已经启用 @EnableConfigurationProperties 注解。