@Value 注解用于将配置文件中的属性值注入到Spring管理的Bean中。
1. 基本用法
@Value 可以直接注入配置文件中的属性值。
配置文件 (application.properties 或 application.yml)
配置文件定义需要注入的数据。
yaml
consumer:
username: lisi
age: 23
hobby: sing,read,sleep
subject: 100,150
注入属性值
分别定义字符串、整数、数组、集合类型成员变量,并将配置文件中对应数据注入。
java
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;
@Component
public class Consumer {
@Value("${consumer.username}")
private String username;
@Value("${consumer.age}")
private int age;
@Value("${consumer.hobby}")
private String[] hobby;
@Value("${consumer.subject}")
private List<Integer> subject;
@Override
public String toString() {
return "Consumer{" +
"username='" + username + '\'' +
", age=" + age +
", hobby=" + Arrays.toString(hobby) +
", subject=" + subject +
'}';
}
}
@Value 通常用于注入简单类型(如字符串、数字等)。如果需要注入复杂对象,建议使用 @ConfigurationProperties。
测试运行
java
@SpringBootTest
public class WebTest {
@Autowired
private Consumer consumer;
@Test
public void test(){
System.out.println(consumer);
}
}
