SpringBoot读取yaml文件操作详解
作者:mzz124 时间:2022-09-16 09:38:31
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>
来源:https://blog.csdn.net/Cey_Tao/article/details/126711146
标签:SpringBoot,读取,yaml,配置文件
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
ehcache模糊批量移除缓存的方法
2023-01-11 12:30:37
c# 用ICSharpCode组件压缩文件
2021-06-23 16:52:10
Android图片色彩变换实现方法
2022-03-21 07:23:32
详解Spring的StringUtils踩坑记录
2021-08-23 16:14:39
SpringBoot web静态资源配置详解
2023-09-24 14:13:26
![](https://img.aspxhome.com/file/2023/0/106090_0s.png)
手把手教你设置IntelliJ IDEA 的彩色代码主题的图文教程
2022-08-22 00:15:25
![](https://img.aspxhome.com/file/2023/0/74980_0s.jpg)
python如何调用java类
2022-03-13 16:11:10
Java线程池的优点及池化技术的应用
2022-07-01 08:12:23
![](https://img.aspxhome.com/file/2023/0/72290_0s.webp)
Android中使用背景色Alpha值遇到的一个坑
2023-06-04 11:47:31
教你如何使用Java8实现菜单树形数据
2022-09-11 12:29:22
![](https://img.aspxhome.com/file/2023/3/67163_0s.png)
java中为何重写equals时必须重写hashCode方法详解
2022-10-24 01:44:39
Java 深入探究讲解简单工厂模式
2022-12-25 12:02:06
![](https://img.aspxhome.com/file/2023/7/83107_0s.png)
在C# WPF下自定义滚动条ScrollViewer样式的操作
2022-09-17 16:55:28
![](https://img.aspxhome.com/file/2023/5/68095_0s.gif)
java客户端Jedis操作Redis Sentinel 连接池的实现方法
2023-08-19 10:55:19
逆转交替合并两个链表的解析与实现
2021-12-31 12:37:41
![](https://img.aspxhome.com/file/2023/2/88752_0s.png)
Java代码实现循环队列的示例代码
2023-11-23 23:51:25
![](https://img.aspxhome.com/file/2023/7/59927_0s.jpg)
C#泛型概念的简介与泛型的使用
2023-10-12 05:13:02
![](https://img.aspxhome.com/file/2023/2/96432_0s.png)
C#语音识别用法实例
2021-09-11 01:16:47
详解Java实现简单SPI流程
2022-12-11 16:02:23
Android 实现定时任务的过程详解
2023-06-14 02:28:33