在使用Spring框架的项目中,@Value是使用比较频繁的注解之一,它的作用是将配置文件中key对应的值赋值给它标注的属性。在日常使用中我们常用的功能都比较简单,本篇文章系统的带大家来了解一下@Value的使用方法。
@Value注入支持形式
@Value属性注入功能根据注入的内容来源可分为两类:通过配置文件的属性注入和通过非配置文件的属性注入。
通过配置文件的注入根据配置文件的来源又可分为两类:一类为默认的Spring Boot会自动加载的配置文件application.properties中的属性;另一类为自定义配置文件中的属性,需要先通过@PropertySource加载。
而非配置文件注入的类型又分为:
- 注入普通字符串
- 注入操作系统属性
- 注入表达式结果
- 注入其他Bean属性
- 注入文件资源
- 注入URL资源
基于配置文件注入
首先来看数据来源自配置文件的注入,无论是会被默认加载的application.properties或自定义的my.properties文件。比如,application.properties中定义属性值的形式如下:
user.name=admin
在my.properties配置文件中定义的属性如下:
user.password=pwd123
那么,@Value在Bean中的使用形式为:
@PropertySource("classpath:my.properties")
@RestController
public class ValueController {
/**
* 获取位于application.properties中配置的属性
*/
@Value("${user.name}")
private String name;
/**
* 获取位于my.pro