SpringBoot中如何详细实现yaml文件读取操作?

2026-05-24 02:091阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计593个文字,预计阅读时间需要3分钟。

SpringBoot中如何详细实现yaml文件读取操作?

目录

1.单个属性

2.全部属性

3.对象属性

补充

1.单个属性 YAML 内的属性如下:

- server: port: 80 只需在成员变量上添加注解 @Value(${属性名}) 即可,直接使用美元符号获取属性值,如下例: - @RestControll

目录
  • 1. 单个属性
  • 2. 全部属性
  • 3. 对象属性
  • 补充

1. 单个属性

yaml 内的属性如下:

server: port: 80

只需在成员变量上注解 @Value(“${属性名}”) 即可,用美元符号获取属性值

如下例:

@RestController @RequestMapping("/") public class DemoController { @Value("${server.port}") private String port; @GetMapping public String func() { return "server port: " + port; } }

2. 全部属性

yaml 内的属性如下:

server: port: 80 logging: level: root: warn

定义 Environment 成员变量,注解 @Autowired 即可,通过 .gerProperty(属性名) 函数来获取属性值

如下例:

@RestController @RequestMapping("/") public class DemoController { @Autowired private Environment environment; @GetMapping public String func() { String port = environment.getProperty("server.port"); String level = environment.getProperty("logging.level.root"); return "server port: " + port + "\n" + "logging level: " + level; } }

3. 对象属性

yaml 内的属性如下:

mybook: name: 《SpringBoot入门》 price: 28.00 tags: [编程, Java, Spring]

首先要定义一个 bean,给类注解 @Component 表示添加到 Spring 容器,注解 @ConfigurationProperties 设置属性 prefix 为配置中的对象名,如下例:

SpringBoot中如何详细实现yaml文件读取操作?

@Component @ConfigurationProperties(prefix = "mybook") public class Book { private String name; private Double price; private String[] tags; // 省略了成员方法 }

使用自动装配填充即可,如下例:

@RestController @RequestMapping("/") public class DemoController { @Autowired private Book book; @GetMapping public String func() { return book.toString(); } }

补充:

当有多个类注解 prefix 的值为同一个对象时,IDEA会报错 Duplicated prefix,但不影响项目运行

补充

在刚才自定义 bean 时,IDEA 会报一个警告 Spring Boot Configuration Annotation Processor not configured,显示在页面的顶部,这个警告不会影响项目运行

在 pom.xml 中添加下面的依赖就可以解决:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> </dependency>

到此这篇关于SpringBoot读取yaml文件操作详解的文章就介绍到这了,更多相关SpringBoot读取yaml内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

本文共计593个文字,预计阅读时间需要3分钟。

SpringBoot中如何详细实现yaml文件读取操作?

目录

1.单个属性

2.全部属性

3.对象属性

补充

1.单个属性 YAML 内的属性如下:

- server: port: 80 只需在成员变量上添加注解 @Value(${属性名}) 即可,直接使用美元符号获取属性值,如下例: - @RestControll

目录
  • 1. 单个属性
  • 2. 全部属性
  • 3. 对象属性
  • 补充

1. 单个属性

yaml 内的属性如下:

server: port: 80

只需在成员变量上注解 @Value(“${属性名}”) 即可,用美元符号获取属性值

如下例:

@RestController @RequestMapping("/") public class DemoController { @Value("${server.port}") private String port; @GetMapping public String func() { return "server port: " + port; } }

2. 全部属性

yaml 内的属性如下:

server: port: 80 logging: level: root: warn

定义 Environment 成员变量,注解 @Autowired 即可,通过 .gerProperty(属性名) 函数来获取属性值

如下例:

@RestController @RequestMapping("/") public class DemoController { @Autowired private Environment environment; @GetMapping public String func() { String port = environment.getProperty("server.port"); String level = environment.getProperty("logging.level.root"); return "server port: " + port + "\n" + "logging level: " + level; } }

3. 对象属性

yaml 内的属性如下:

mybook: name: 《SpringBoot入门》 price: 28.00 tags: [编程, Java, Spring]

首先要定义一个 bean,给类注解 @Component 表示添加到 Spring 容器,注解 @ConfigurationProperties 设置属性 prefix 为配置中的对象名,如下例:

SpringBoot中如何详细实现yaml文件读取操作?

@Component @ConfigurationProperties(prefix = "mybook") public class Book { private String name; private Double price; private String[] tags; // 省略了成员方法 }

使用自动装配填充即可,如下例:

@RestController @RequestMapping("/") public class DemoController { @Autowired private Book book; @GetMapping public String func() { return book.toString(); } }

补充:

当有多个类注解 prefix 的值为同一个对象时,IDEA会报错 Duplicated prefix,但不影响项目运行

补充

在刚才自定义 bean 时,IDEA 会报一个警告 Spring Boot Configuration Annotation Processor not configured,显示在页面的顶部,这个警告不会影响项目运行

在 pom.xml 中添加下面的依赖就可以解决:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> </dependency>

到此这篇关于SpringBoot读取yaml文件操作详解的文章就介绍到这了,更多相关SpringBoot读取yaml内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!