YAML/Properties配置文件与Spring Boot(转)
多年来,Java开发人员依赖于属性文件或xml文件来指定应用程序配置。在企业应用程序中,人们可以为每个环境(如开发,分段和生产)创建单独的文件,以定义相应环境的属性。但是,通过Spring引导,我们可以选择在单个“yml”文件中配置所有配置文件。
什么是YAML?
YAML是JSON的超集,因此这是一种非常方便的格式,用于指定分层配置数据。
YAML官网:它是所有编程语言的人性化数据序列化标准。
YAML更易读,对于开发人员的读/写配置文件是有好处的。
YAML设计目标:
从YAML官方规范:
- YAML易于人类阅读。
- YAML数据在编程语言之间是可移植的。
- YAML匹配敏捷语言的本机数据结构。
- YAML具有一致的模型来支持通用工具。
- YAML支持单程处理。
- YAML具有表现力和可扩展性。
- YAML易于实施和使用。
我应该怎么考虑呢?
即使您的YAML文件不完整,也无法检测到它,但XML解析器始终检查格式良好的文档。
不要考虑:
YAML文件不考虑良好的序列化,而不像JSON,因为它是基于对象。
那么,XML呢?
XML主要是机器到机器的通信。
YAML文件示例:
environment:profiles: devname: Developer App url: http://dev.abc.comprofiles: qaname: QA App url: http://qa.abc.com
哪些Java YAML解析器可用?
有以下可用于Java的YAML解析器,
- SnakeYAML
- JYaml
- YamlBeans
- JvYaml
Spring Boot使用SnakeYAML库进行YAML支持。
SnakeYAML
Snakeyaml是Java虚拟机的YAML解析器和发射器。
官方网站:https://bitbucket.org/asomov/snakeyaml
SnakeYAML功能:
- 一个完整的YAML 1.1解析器。具体来说,SnakeYAML可以解析规范中的所有示例。
- Unicode支持包括UTF-8/UTF-16输入/输出。
- 用于序列化和反序列化本机Java对象的高级API。
- 支持YAML类型存储库中的所有类型 。
- 相对敏感的错误信息。
所以...
关于YAML,在Spring Boot框架中如何支持读写呢?
是的,如果您的类路径中包含Snakeyaml库,则SpringApplication类将自动支持YAML作为属性文件的替代方法。
如果你在POM使用Starter,那么spring-boot-starter会自动加载yml文件(application.yml)
您可以在这里检查Spring-Boot-Starter。
如何在Spring Boot中加载?
该YamlPropertiesFactoryBean将加载YAML做为Properties和YamlMapFactoryBean将加载YAML做为Map。
更多的请阅读:Spring Boot Doc
如何使用YamlPropertiesFactoryBean使用Spring Framework加载YAML文件?
从Spring框架4.1.0增加了对YAML的支持,Spring框架4.1.0 maven POM具有Snakeyaml依赖性 。
您可以在Spring Boot应用中使用两种方式加载YAML:
1、使用Java配置类
@Beanpublic static PropertySourcesPlaceholderConfigurer properties() {PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer = new PropertySourcesPlaceholderConfigurer();YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();yaml.setResources(new ClassPathResource("appConfig.yml");propertySourcesPlaceholderConfigurer.setProperties(yaml.getObject());return propertySourcesPlaceholderConfigurer;}
2、使用XML Bean配置
<context:annotation-config/><bean id="yamlProperties" class="org.springframework.beans.factory.config.YamlPropertiesFactoryBean"><property name="resources" value="classpath:appConfig.yml"/> </bean><context:property-placeholder properties-ref="yamlProperties"/>
有没有YAML编辑器可用?
是的,现在Spring STS 3.7.0有Spring Boot YAML编辑器,它具有引导特定的内容辅助,验证,悬停信息和超链接检测器。它了解Spring Boot的配置元数据。
检查此链接以获取更多信息:STS 3.7.0 YAML编辑器。
Spring Boot YAML演示的例子?
如果你想了解spring启动yaml的工作原理,请参考这个例子来自GitHub的Spring-boot-yaml。
参考:
https://meetsnehal.wordpress.com/2015/09/12/yaml-an-alternative-to-properties-file-with-spring-boot/(以上内容翻译自此篇文章)
https://en.wikipedia.org/wiki/YAML
http://yaml.org/
http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config html
https://stackoverflow.com/questions/39474133/spring-boot-using-yaml-instead-of-properties-file
转载于:https://www.cnblogs.com/EasonJim/p/7583837.html
YAML/Properties配置文件与Spring Boot(转)相关推荐
- SpringBoot解析yml/yaml/properties配置文件的四种方式汇总
目录 一.配置文件注入方式一@Value 二.配置文件注入方式二@ConfigurationProperties 三.自定义解析类,直接暴力读取yml配置文件 四.Spring配置文件的解析类Envi ...
- Spring Boot 框架学习笔记(二)(配置文件与数据注入 yaml基本语法 JSR303数据验证 多环境切换 )
Spring Boot 框架学习笔记(二) 六.appliaction.properties配置与数据注入 6.1 `@Value`注解 测试注入数据 读取输入流 6.2 读取配置文件数据注入 单文件 ...
- Spring Boot 配置文件中的花样,看这一篇足矣!
点击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 关注我,回复口令获取可获取独家整理的学习资料: - 001 :领取<Spring Boot基础教 ...
- Java Spring Boot VS .NetCore (七) 配置文件
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- Spring Boot YAML配置
在本快速教程中,我们将学习如何使用YAML文件来配置Spring Boot应用程序的属性. 什么是YAML文件? 除了可以在Spring中没有应用程序.properties之外 ,我们还可以使用app ...
- Spring Boot 2.x基础教程:配置文件详解
在快速入门一节中,我们轻松的实现了一个简单的RESTful API应用,体验了一下Spring Boot给我们带来的诸多优点,我们用非常少的代码量就成功的实现了一个Web应用,这是传统的Spring应 ...
- Spring Boot (4)---配置文件详解
Spring2.0 Boot配置文件详解 配置文件说明 Spring Boot 配置文件允许为同一套应用,为不同的环境用不同的配置文件.比如开发环境.测试环境.生成环境.你可以用 properties ...
- Spring Boot 快速入门(二)主配置文件、yml配置文件语法
SpringBoot 的主配置文件 编辑器 Spring Boot 的主配置文件是 src/main/resources 中默认创建的 spring.properties 文件.该文件打开后是没有自动 ...
- (转) SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解
springboot采纳了建立生产就绪spring应用程序的观点. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.在一般情况下,我们不需要做太多的配置就能够让spring boot正 ...
最新文章
- 十六届智能车全向组硬件开源 | 上海海事大学全向行进组
- 【正则表达式】之Possessive Quantifiers
- 构建高并发高可用安全的IT系统-高并发部分
- [TJOI2015]线性代数(最小割)
- Diango博客--14.使用 Django 项目中的 ORM 编写伪造测试数据脚本
- 2018上半年软件设计师上午题参考答案
- 网站建设:部署与发布
- spring 优越性实践
- 一口气说出 6种 @Transactional 注解失效场景
- (19)FPGA脉冲计数器设计(第4天)
- FPGA实现按键消抖及短时间按键和长时间按键不同动作
- umask设置导致的weblogic中的应用上传的文件没有权限打开
- Ubuntu20.04如何解决QQ闪退问题(亲测有效)
- r语言clind函数_19 函数进阶 | R语言教程
- 基于MapGIS的GIS二次开发作业文档
- Windows 上路由、端口转发配置
- android补间动画有哪几种,android三种动画详解(补间动画、帧动画、属性动画)...
- Java程序员可以做哪些副业?
- 公司合伙人股权的进入和退出机制
- 苹果ipa安装包分发下载教程