1 spring 自动配置参考
01-@Value注解作用
02-@ConfigurationProperties使用方法
03-@ConfigurationProperties不生效问题探究
2 spring boot自动配置-@ConfigurationProperties
@ConfigurationProperties注解较为简单,不需要为每个变脸单独添加@Value注解指定位置,添加prefix前缀后,spring将自动到配置文件中读取相关前缀属性。
配置类的使用可以直接通过@Autowired自动装在到指定位置。
3 spring 配置注解@Value
@Value字段或方法/构造函数参数级别的注释指示受影响参数的默认值表达式。 通常用于表达式驱动的依赖注入。还支持用于动态解析处理程序方法参数,例如在Spring MVC中一个常见的用例是使用#{systemProperties.myProp}样式表达式分配默认字段值。
通过@Value将外部的值动态注入到Bean中,使用的情况有:
- 注入配置文件属性
- 注入普通字符串
- 注入操作系统属性
- 注入表达式结果
- 注入其他Bean属性:注入beanInject对象的属性another
- 注入文件资源
- 注入URL资源
@Autowired
public ValueConfigWithProviderConstructorArguments(@Value("#{systemProperties[myProp]}") Provider<String> name,
@Value("#{systemProperties[myProp]}") Provider<String> name2) {
this.name = name;
this.name2 = name2;
}
4 小结
@Value是spring中功能强大的用于属性、方法默认值的依赖注入注解,其除了读取配置文件默认属性以外,还有一些其他功能,有待进一步学习,虽然他支持配置文件的配置装载,但是没有spring boot提供的@ConfigurationProperties更加方便,需要针对每一个配置属性加以注解,应用的配置文件定制,使用@ConfigurationProperties会更加简洁,但是@Value的强大功能也值得继续学习,后续给出更进一步的说明。