1、@Value 与 @ConfigurationProperties 都可以从全局配置文件中获取值然后注入到属性中
@Value 取值注入
* 以前在Spring核心配置文件beans.xml用如下配置为某个类的属性注入值
* <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
* <property name="driverClassName" value="${jdbc.driverclass}"></property>
* <property name="url" value="${jdbc.url}"></property>
* <property name="username" value="root"></property>
* <property name="password" value="123456"></property>
* </bean>
application. yml
1、使用 “@Value” 注解从全局配置文件 "application.yml" 取值,然后为指定的属性赋值。
配置文件"application.yml"
POJO 属性取赋值
@ConfigurationProperties VS @Value
松散绑定支持
配置文件里面用的lastName,注入值的地方用@value("${person.last-name}")可以成功注入值
SpEl 支持
@value("#{11*2}")
复杂类型封装支持
@value("${person.maps}") 可以成功的从配置文件中取出来值然后赋值进去
JSR303数据校验支持 (下面支持的lastName一定要用邮箱格式)
1、两者都可以从配置文件 *.yml 与 *.properties 中获取到值;
2、如果项目中只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用 @Value 即可;
3、如果项目中专门编写了一个 JavaBean 来和配置文件进行映射,则直接使用@ConfigurationProperties即可;
4、具体要具需求而定。