@Configuration | @Value | |
---|---|---|
功能 | 批量注入配置文件的属性 | 逐个注入数据 |
松散绑定 | 支持松散语法绑定 | 不支持松散语法绑定 |
SpEL | 不支持 | 支持 |
JSR303数据校验 | 支持 | 不支持 |
复杂类型(map,list)注入 | 支持 | 不支持 |
@Value就是对spring在bean.xml文件中进行容器组件配置的封装,提供完全相同的调用默认构造函数进行属性的数据注入支持,但以注解的形式配置。
其他外来类放入容器中,在配置类中配置,在主类注解引用。
@ConfigurationProperties可以同时获取yaml,properties两种配置文件的key下的配置值。
所以在选用注解的时候,根据两种不同的特点,获取简单的基本数据类型的使用,可以用@Value在配置文件中获取等方法。
在需要注入复杂类型对象或是需要批量注入文件属性的时候使用@ConfiguraionProperties进行配置。