YAML是“YAMLAin’tMarkupLanguage”(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML的意思其实是:“YetAnotherMarkupLanguage”(仍是一种标记语言),本文给大家介绍的非常详细,需要的朋友可以参考下
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 为配置中的对象名,如下例:
@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内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:SpringBoot读取yaml文件操作详解


基础教程推荐
- JVM分析之类加载机制详解 2023-04-06
- Java使用EasyExcel进行单元格合并的问题详解 2023-01-18
- 用java实现扫雷游戏 2022-12-06
- Java File类的概述及常用方法使用详解 2023-05-18
- SpringBoot配置文件中密码属性加密的实现 2023-03-11
- 一文了解Java 线程池的正确使用姿势 2023-06-17
- 工厂方法在Spring框架中的运用 2023-06-23
- 全局记录Feign的请求和响应日志方式 2023-01-09
- Java去掉小数点后面无效0的方案与建议 2023-02-18
- Project Reactor源码解析publishOn使用示例 2023-04-12