springboot-获取yaml文件的3种方式
1. 方法一
```java
//获取单个.yaml数据的值
//方法一:
//1.在当前类里面定义属性
//2.在属性上面使用@Value注解并在括号里面写入定义的属性名
//3.在定义的属性名要和.yaml 文件里的属性名一致
@Value("${lesson}")
private String lesson;
System.out.println(lesson);
```
2. 方法二
```java
//方法二:(封装后读取)
//1.在当前类定义一个Environment类型的属性,并在这个属性的上面加上@Autowired注解
@Autowired
private Environment env;
System.out.println(env.getProperty("Books.id"));
System.out.println(env.getProperty("Books.BookName"));
System.out.println(env.getProperty("Books.BookPrice"));
System.out.println(env.getProperty("Books.Stock"));
System.out.println(env.getProperty("BookName"));
```
3. 方法三
```java
//方法三:(封装后读取)
//1.一般用于实体类的获取
//2.要在实体类中标明一个注解:比如 @Component(确定是一个bean对象)
//3.然后再配置一个@ConfigurationProperties(prefix = "books")注解
//4.@ConfigurationProperties:是.yaml文件中的属性
//5、prefix :是获取.yaml文件中的前缀(.yaml 文件的头属性)
//@ConfigurationProperties(prefix = "books")
@Autowired
private Books books;
System.out.println(books);
System.out.println(books.getId());
```
application.yaml
```yaml
#.yaml:数据序列格式化
#注重:数据
# 在冒号的后面要加上空格
#区分大小写
lesson: springboot
hello: hello SpringBoot
server:
port: 89
logging:
level:
root: info
Books:
id: 1
BookName: SpringBoot
BookPrice: 89.9
Stock: 99
BookName:
-java
-spring5
-mysql
-mybatis
-springMVC
-SpringBoot
```
BookController.java (执行类)
```java
package com.xiao.springbootdemo.controller;
import com.xiao.springbootdemo.daoMain.Books;
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.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author :信仰
* @Date :2023/2/25 8:11
*/
@RestController
@RequestMapping("/books")
public class BookController {
//获取单个.yaml数据的值
//方法一:
//1.在当前类里面定义属性
//2.在属性上面使用@Value注解并在括号里面写入定义的属性名
//3.在定义的属性名要和.yaml 文件里的属性名一致
@Value("${lesson}")
private String lesson;
@Value("${hello}")
private String hello;
//方法二:(封装后读取)
//1.在当前类定义一个Environment类型的属性,并在这个属性的上面加上@Autowired注解
@Autowired
private Environment env;
//方法三:(封装后读取)
//1.一般用于实体类的获取
//2.要在实体类中标明一个注解:比如 @Component(确定是一个bean对象)
//3.然后再配置一个@ConfigurationProperties(prefix = "books")注解
//4.@ConfigurationProperties:是.yaml文件中的属性
//5、prefix :是获取.yaml文件中的前缀(.yaml 文件的头属性)
//@ConfigurationProperties(prefix = "books")
@Autowired
private Books books;
@GetMapping("/{id}")
public String getBookId(@PathVariable Integer id){
System.out.println("id="+id);
//方法一的输出语句
System.out.println(lesson);
System.out.println(hello);
System.out.println("==========");
//方法二的输出语句
System.out.println(env.getProperty("lesson"));
System.out.println(env.getProperty("Books.id"));
System.out.println(env.getProperty("Books.BookName"));
System.out.println(env.getProperty("Books.BookPrice"));
System.out.println(env.getProperty("Books.Stock"));
System.out.println(env.getProperty("BookName"));
System.out.println("==========");
//方法三的输出语句
System.out.println(books);
System.out.println(books.getId());
return "hello springboot!";
}
}
```
实体类:
```java
package com.xiao.springbootdemo.daoMain;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
/**
* @Author :信仰
* @Date :2023/2/25 11:35
*/
@ConfigurationProperties(prefix = "books")
@Component
public class Books {
private Integer id;
private String BookName;
private Double BookPrice;
private Integer Stock;
public Books() {
}
public Books(Integer id, String bookName, Double bookPrice, Integer stock) {
this.id = id;
BookName = bookName;
BookPrice = bookPrice;
Stock = stock;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getBookName() {
return BookName;
}
public void setBookName(String bookName) {
BookName = bookName;
}
public Double getBookPrice() {
return BookPrice;
}
public void setBookPrice(Double bookPrice) {
BookPrice = bookPrice;
}
public Integer getStock() {
return Stock;
}
public void setStock(Integer stock) {
Stock = stock;
}
@Override
public String toString() {
return "Books{" +
"id=" + id +
", BookName='" + BookName + '\'' +
", BookPrice=" + BookPrice +
", Stock=" + Stock +
'}';
}
}
```
springboot-获取yaml文件的3种方式
最新推荐文章于 2024-12-31 10:13:00 发布