springboot|在SpringBoot中读取yaml配置文件中的数据、全部数据、部分数据

yaml配置文件中的数据:

server: port: 8080#字符串类型的数据 country: 博兴县#两级 user1: name: zhangzhang age: 26#对象数组 users: - name: zhangsan age: 18 - name: lisi age: 20#描述多个信息的数组 likes: - game - music - watching - sport#使用${属性名}引用数据 baseDir: c:\windows tempDir: ${baseDir}\temp #tempDir: "${baseDir}\temp"如果这个地方加了双引号的话,里面就出现了转义字符\t 制表符 就会在控制台上面输出,这个就是区别#创建类,用于封装下面的数据 #由spring帮我们去加载数据到对象中,一定要告诉spring加载这组数据 #使用的时候从spring中直接获取信息使用 datasource: driver: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:8080/springboot_db username: root password: admin

创建一个类,封装部分数据
package com.company; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Component; //1.定义数据模型封装yaml文件中对应的数据 //2.这个类要受Spring控制,定义为spring管控的bean @Component //3.指定加载的数据 @ConfigurationProperties(prefix="datasource")//这个地方的prefix值要和配置文件中的属性名相同,才能完成指定加载数据的操作 public class MyDataSources { private String driver; private String url; privateString username; privateString password; @Override public String toString() { return "MyDataSources{" + "driver='" + driver + '\'' + ", url='" + url + '\'' + ", username='" + username + '\'' + ", password='" + password + '\'' + '}'; }public String getDriver() { return driver; }public void setDriver(String driver) { this.driver = driver; }public String getUrl() { return url; }public void setUrl(String url) { this.url = url; }public String getUsername() { return username; }public void setUsername(String username) { this.username = username; }public String getPassword() { return password; }public void setPassword(String password) { this.password = password; } }

测试输出类:
package com.company.controller; import com.company.MyDataSources; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.env.Environment; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/books") public class BooksController {//读取yaml数据中的单一数据 @Value("${country}")//Spring中为了注入基本数据类型以及字符串的格式 private String country; //这个属性名,不用和yaml文件中的属性名一致//读取两级数据 @Value("${user1.name}") privateString userName; //读取数组中的数据 @Value("${likes[0]}")//这里采用数组的形式,下标是从0开始的 privateString like1; //读取对象数组中的数据 @Value("${users[1].age}") privateString userAge; //#使用${属性名}引用数据 @Value("${tempDir}") private String tempDir; //封装全数据将所有的数据封装到一个对象里面 @Autowired //自动装配注解 private Environment env; //封装部分数据 @Autowired private MyDataSources myDataSources; @GetMapping public String getById(){ System.out.println("springboot is running"); System.out.println("country----->"+country); System.out.println("userName----->"+userName); System.out.println("like1------->"+like1); System.out.println("userAge------>"+userAge); System.out.println("tempDir------>"+tempDir); System.out.println("**************************"); //提取数据的时候使用getProperty System.out.println(env.getProperty("users[1].age")); System.out.println(env.getProperty("tempDir")); //输出封装的部分数据 System.out.println("*******************************"); System.out.println(myDataSources); return "springboot is running"; } }


输出结果:
springboot|在SpringBoot中读取yaml配置文件中的数据、全部数据、部分数据
文章图片

【springboot|在SpringBoot中读取yaml配置文件中的数据、全部数据、部分数据】

    推荐阅读