springboot配置文件yml数据读取
yml示例数据如下
country: china
student:
name: xuesheng01
age: 20
user:
-
name: zhangsan
age: 18
-
name: lisi
age: 19
baseDir: c:\windows
tempDir: ${baseDir}\temp
#使用引号包裹 支持转义字符
tempDir2: "${baseDir}\temp"
读取方式
- 获取单数据中的单一数据
@Value("${student.name}")
private String name;
@Value("${student.age}")
private String age;
- 获取单数据中的数组单一数据
@Value("${user[0].name}")
private String name1;
@Value("${user[1].name}")
private String name1;
- 把所有数据封装到对象中
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/")
public class DemoController {
@Autowired
private Environment env;
@GetMapping
public String GetMessage(){
System.out.println(env.getProperty("country"));
System.out.println(env.getProperty("user.name"));
}
}
- 指定对象封装到bean实例中
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
//1.定义数据模型,封装yml中对应的数据
//2.把他定义为Spring管理的bean
@Component
//3.制定加载的数据
@ConfigurationProperties(prefix = "student")
public class Student {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
'}';
}
}
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果

