Spring Boot YAML配置
在本快速教程中,我们将学习如何使用YAML文件来配置Spring Boot应用程序的属性。
什么是YAML文件?
除了可以在Spring中没有应用程序.properties之外 ,我们还可以使用application.yml作为配置文件。 YAML是JSON的超集,我们可以将其用于配置数据。 YAML文件更易于阅读,尤其是当我们有许多层次结构配置时。
让我们看看一个非常基本的YAML文件是什么样的:
src / main / resources / application.yml
server:url: http://localhost myapp:name: MyApplicationthreadCount: 4
...
上面的YAML文件等效于下面的application.properties文件:
server.url=http://localhost
server.myapp.name=MyApplication
server.myapp.threadCount=4
...
Spring使用SnakeYAML来解析YAML文件,该文件在spring-boot-starter中可用:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>2.1.5.RELEASE</version>
</dependency>
我们可以在Maven存储库中查看此依赖项的最新版本。
YAML中的Spring配置文件:
我们可以使用spring.profiles键来提及应用了属性值的配置文件。 例如:
spring:profiles: dev | test
server:url: http://localhost app:name: MyApplicationthreadCount: 4users: - A- B
----
spring:profiles: prod
server:url: http://myapp.org app:name: MyApplicationthreadCount: 10users: - Jacob- James
然后根据活动的弹簧曲线分配属性值。 在运行Spring应用程序时,我们可以将配置文件设置为:
-Dspring.profiles.active=dev
绑定YAML配置:
访问YAML属性的一种方法是使用@Value(“ $ {property}”)批注。 但是,还有另一种流行的方法可以确保强类型的Bean统治并验证我们的应用程序配置。
为此,我们将创建一个@ConfigurationProperties类,该类映射一组相关属性:
@ConfigurationProperties("server")
public class ServerProperties {private String url;private final App app = new App();public App getApp() {return app;}//getter and setter for urlpublic static class App {private String name;private String threadCount;private List<String> users = new ArrayList<>();//getters and setters}}
请注意,我们可以创建一个或多个@ConfigurationProperties类。
现在让我们定义AppConfig类:
@Configuration
@EnableConfigurationProperties(ServerProperties.class)
public class ApplicationConfig {...}
在这里,我们提到了要在@EnableConfigurationProperties批注中注册的属性类的列表。
访问YAML属性:
现在,我们可以通过使用我们创建的@ConfigurationProperties Bean来访问YAML属性。 我们将像注入任何常规Spring bean一样注入这些属性bean:
@Service
public class AppService {@Autowiredprivate ServerProperties config;public void printConfigs() {System.out.println(this.config.getUrl());System.out.println(this.config.getApp().getName());System.out.println(this.config.getApp().getThreadCount());System.out.println(this.config.getApp().getUsers());}
}
然后,我们可以使用AppRunner来启动我们的Spring应用程序,并调用ou r printConfigs()方法。 我们的应用程序将根据活动的弹簧轮廓打印出属性值。
结论:
在本教程中,我们学习了如何在Spring Boot应用程序中使用YAML配置文件。
翻译自: https://www.javacodegeeks.com/2019/05/spring-boot-yaml-configuration.html
Spring Boot YAML配置相关推荐
- springboot原生mysql写法_【Rainbond最佳实践】Spring Boot框架配置MySQL
Rainbond开源软件介绍: Rainbond是国内首个开源的生产级无服务器PaaS. 深度整合基于Kubernetes的容器管理.多类型CI/CD应用构建与交付.多数据中心的资源管理等技术,提供云 ...
- 在Spring Boot中配置web app
文章目录 添加依赖 配置端口 配置Context Path 配置错误页面 在程序中停止Spring Boot 配置日志级别 注册Servlet 切换嵌套服务器 在Spring Boot中配置web a ...
- 芋道 Spring Boot 自动配置原理
转载自 芋道 Spring Boot 自动配置原理 1. 概述 友情提示:因为本文是分享 Spring Boot 自动配置的原理,所以需要胖友有使用过 Spring Boot 的经验.如果还没使用过 ...
- spring boot @value_spring+vue全栈开发实战-第二章Spring Boot 基础配置-笔记0302-2020
Spring Boot 基础配置 1. Web 容器配置 2.Properties 配置 3.类型安全配置属性 1. Web 容器配置 a.常规配置 在 Spring Boot 项 目 中,可以内置 ...
- 学习第三篇:【SpringBoot-Labs】芋道 Spring Boot 自动配置原理
本周(8.21-8.27)将学习芋道 Spring Boot的以下文章: 8.21: 快速入门 8.22:Spring Boot 自动配置原理 .Jar 启动原理 8.23:调试环境. 热部署入门.消 ...
- Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件
本章内容 自定义属性快速入门 外化配置 自动配置 自定义创建 Starter 组件 摘录:读书是读完这些文字还要好好用心去想想,写书也一样,做任何事也一样 图 2 第二章目录结构图 第 2 章 Spr ...
- Spring Boot 属性配置和使用
spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置. Spring Boot 系列 Spring Boot 入门 S ...
- spring boot自动配置
首先,一般的java Web项目需要很多配置,web配置(web.xml).spring配置(默认叫applicationContext.xml),非常繁琐 而spring-boot-starter是 ...
- Spring Boot自动配置原理
要了解Spring Boot的自动配置首先我需要先了解Spring Boot的两个机制,一个是配置文件如何进入到系统变成属性,二是如何将这些属性加入到容器中. 首先我们需要有一个组件,这个组件中的属性 ...
最新文章
- 求最小Hamming距离的DNA序列
- 匿名对象和object的转换
- UVA10763交换学生
- ALV中下拉列表列的实现
- 关于linux内核无法编译成模块的解决方法
- 用uid分库,uname上的查询怎么办?
- java面向对象之封装
- mkcert在windows系统上制作SSL证书
- WindRiver Linux Yocto Project Note
- ESP32 调试SHT20踩的坑
- 4个C++算法数学模板(备战蓝桥杯)
- 支付宝小程序开发+java服务
- 深入Flutter(四) Infinite scrolling -- 无限滚动
- ACM:搜索算法专题(1)——24点
- linux cad 安装教程,如何在Ubuntu 18.04/16.04/Linux中安装FreeCAD 0.18
- C语言的输入输出模型
- 密码学 | 维吉尼亚密码(Vigener)
- trello清单(二)
- 理解深度学习.PDF、国外AIGC各模态产品梳理.pdf、构建企业级的私有大模型.pdf
- 2014年计算机一级考试操作题,2014国家计算机一级考试操作题常见题型.doc