@ConfigurationProperties和@EnableConfigurationProperties详解
@ConfigurationProperties主要用来把properties或者yaml配置文件中的内容,注入到标注此注解的类中。
①yaml配置文件:
②创建一个类,类属性与yaml配置的属性保持一致:
方法一:如下图配置@Component,就可以直接使用该bean,不用再添加@EnableConfigurationProperties,这样配置就可以让bean生效
③此时,我们需要将Dog类放入容器中,有两种方法,一种如上图,直接在Dog类上加@Component注解;另一种方法就是使用@EnableConfigurationProperties注解。
方法二:
特别注意:
1、在定义yaml配置文件时,定义的属性值一定不可以带有下划线符号'_',否则通过 @Component,@ConfigurationProperties(prefix = "dog") 注解类所获取的属性值会为空。
错误用法:
// 错误用法: dog_Name: 二狗 //正确用法: dogName: 二狗
2、@ConfigurationProperties注解在向Bean中注入属性值时,是通过Bean的Set方法进行注入的,所以Bean中的成员变量必须有set方法,否则会出现装配属性不成功的情况。