Spring-@Value注解注入值
@Value
注解用于在Spring中为字段、方法参数或构造函数参数注入值。它允许将外部配置(如属性文件、系统环境变量、命令行参数等)的值注入到Spring Bean中。
常见用法
- 注入常量值
可以直接将常量字符串、数值等注入到字段中。@Value("Hello, Spring!") private String message;
- 从属性文件注入值
可以从application.properties
或application.yml
中获取配置属性的值,并将其注入到字段中。# application.properties app.version=1.0.0
@Value("${app.version}") private String appVersion;
- 从set方法中也可以注入默认值
public String getName() { return name; } @Value("张禹垚") public void setName(String name) { this.name = name; } public int getAge() { return age; } @Value("22") public void setAge(int age) { this.age = age; }
- 注入默认值
可以为属性提供默认值,如果未配置该属性,Spring将使用默认值。@Value("${app.timeout:5000}") private int timeout;
- SpEL表达式
@Value
支持使用Spring Expression Language (SpEL) 表达式,可以进行一些简单的计算或字符串拼接等操作。@Value("#{T(java.lang.Math).random() * 100}") private double randomNumber;
总结
@Value
注解的主要作用是将外部配置或常量注入到Spring Bean中,支持属性占位符、默认值和SpEL表达式,非常灵活,适合配置驱动的应用开发。