springboot @Value 读取配置文件数据
application.yml中
user:
name: 罗小黑
age: 5
ability:
#yml 数组格式
- 金
- 空间
# list
_ability: metal,space
在引导类的包下创建User类
package com.wsd.example.demo1;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;
//@Component 创建Bean对象交给spring容器管理
@Component
public class User {
//将配置文件中的user.name的值注入给该属性
@Value("${user.name}")
private String name;
//将配置文件中的user.age的值注入给该属性
@Value("${user.age}")
private int age;
//将配置文件中的user._ability的值注入给该属性
@Value("${user._ability}")
private List ability;
//将配置文件中的user.ability数组下标为1的值注入给该属性
@Value("${user.ability[1]}")
private String exceptional;
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
", _ability=" + ability +
", exceptional='" + exceptional + '\'' +
'}';
}
}
@Value 不能直接将配置文件中的整个数组注入给User的数组属性,
可以采用List的形式
https://blog.csdn.net/weixin_39581716/article/details/111170059
引导类
package com.wsd.example.demo1;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class Demo1Application {
public static void main(String[] args) {
//返回值 context 为spring容器
ConfigurableApplicationContext context = SpringApplication.run(Demo1Application.class, args);
//从 spring容器 中 获取 User 类 的 Bean 对象
User user = context.getBean(User.class);
System.out.println(user);
}
}
结果:
https://blog.csdn.net/weixin_43949634/article/details/113961321
读取user.name获取到的是当前系统的用户名,而不是配置文件中的值