在本快速教程中,我们将学习如何使用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配置相关推荐

  1. springboot原生mysql写法_【Rainbond最佳实践】Spring Boot框架配置MySQL

    Rainbond开源软件介绍: Rainbond是国内首个开源的生产级无服务器PaaS. 深度整合基于Kubernetes的容器管理.多类型CI/CD应用构建与交付.多数据中心的资源管理等技术,提供云 ...

  2. 在Spring Boot中配置web app

    文章目录 添加依赖 配置端口 配置Context Path 配置错误页面 在程序中停止Spring Boot 配置日志级别 注册Servlet 切换嵌套服务器 在Spring Boot中配置web a ...

  3. 芋道 Spring Boot 自动配置原理

    转载自  芋道 Spring Boot 自动配置原理 1. 概述 友情提示:因为本文是分享 Spring Boot 自动配置的原理,所以需要胖友有使用过 Spring Boot 的经验.如果还没使用过 ...

  4. spring boot @value_spring+vue全栈开发实战-第二章Spring Boot 基础配置-笔记0302-2020

    Spring Boot 基础配置 1. Web 容器配置 2.Properties 配置 3.类型安全配置属性 1. Web 容器配置 a.常规配置 在 Spring Boot 项 目 中,可以内置 ...

  5. 学习第三篇:【SpringBoot-Labs】芋道 Spring Boot 自动配置原理

    本周(8.21-8.27)将学习芋道 Spring Boot的以下文章: 8.21: 快速入门 8.22:Spring Boot 自动配置原理 .Jar 启动原理 8.23:调试环境. 热部署入门.消 ...

  6. Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件

    本章内容 自定义属性快速入门 外化配置 自动配置 自定义创建 Starter 组件 摘录:读书是读完这些文字还要好好用心去想想,写书也一样,做任何事也一样 图 2 第二章目录结构图 第 2 章 Spr ...

  7. Spring Boot 属性配置和使用

    spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置. Spring Boot 系列 Spring Boot 入门 S ...

  8. spring boot自动配置

    首先,一般的java Web项目需要很多配置,web配置(web.xml).spring配置(默认叫applicationContext.xml),非常繁琐 而spring-boot-starter是 ...

  9. Spring Boot自动配置原理

    要了解Spring Boot的自动配置首先我需要先了解Spring Boot的两个机制,一个是配置文件如何进入到系统变成属性,二是如何将这些属性加入到容器中. 首先我们需要有一个组件,这个组件中的属性 ...

最新文章

  1. 求最小Hamming距离的DNA序列
  2. 匿名对象和object的转换
  3. UVA10763交换学生
  4. ALV中下拉列表列的实现
  5. 关于linux内核无法编译成模块的解决方法
  6. 用uid分库,uname上的查询怎么办?
  7. java面向对象之封装
  8. mkcert在windows系统上制作SSL证书
  9. WindRiver Linux Yocto Project Note
  10. ESP32 调试SHT20踩的坑
  11. 4个C++算法数学模板(备战蓝桥杯)
  12. 支付宝小程序开发+java服务
  13. 深入Flutter(四) Infinite scrolling -- 无限滚动
  14. ACM:搜索算法专题(1)——24点
  15. linux cad 安装教程,如何在Ubuntu 18.04/16.04/Linux中安装FreeCAD 0.18
  16. C语言的输入输出模型
  17. 密码学 | 维吉尼亚密码(Vigener)
  18. trello清单(二)
  19. 理解深度学习.PDF、国外AIGC各模态产品梳理.pdf、构建企业级的私有大模型.pdf
  20. 2014年计算机一级考试操作题,2014国家计算机一级考试操作题常见题型.doc

热门文章

  1. F. Paper Grading(Trie树+dfs序+二维数点)
  2. 【结论】取石子游戏(jzoj 1211)
  3. 【贪心】最大连续数列的和
  4. Spark SQL(六)之加载数据的参数配置
  5. 面对枯燥的源码,如何才能看得下去
  6. jQuery 基础教程 (四)之jQuery中的DOM操作
  7. Java中的OutOfMemoryError
  8. 对Java的URL类支持的协议进行扩展的方法
  9. 你真的以为你了解Java的序列化了吗
  10. 从0部署一个动态网站