javascript
YAML/Properties配置文件与Spring Boot(转)
多年來,Java開發(fā)人員依賴于屬性文件或xml文件來指定應(yīng)用程序配置。在企業(yè)應(yīng)用程序中,人們可以為每個環(huán)境(如開發(fā),分段和生產(chǎn))創(chuàng)建單獨的文件,以定義相應(yīng)環(huán)境的屬性。但是,通過Spring引導(dǎo),我們可以選擇在單個“yml”文件中配置所有配置文件。
什么是YAML?
YAML是JSON的超集,因此這是一種非常方便的格式,用于指定分層配置數(shù)據(jù)。
YAML官網(wǎng):它是所有編程語言的人性化數(shù)據(jù)序列化標(biāo)準(zhǔn)。
YAML更易讀,對于開發(fā)人員的讀/寫配置文件是有好處的。
YAML設(shè)計目標(biāo):
從YAML官方規(guī)范:
我應(yīng)該怎么考慮呢?
即使您的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解析器,
Spring Boot使用SnakeYAML庫進行YAML支持。
SnakeYAML
Snakeyaml是Java虛擬機的YAML解析器和發(fā)射器。
官方網(wǎng)站:https://bitbucket.org/asomov/snakeyaml
SnakeYAML功能:
- 一個完整的YAML 1.1解析器。具體來說,SnakeYAML可以解析規(guī)范中的所有示例。
- Unicode支持包括UTF-8/UTF-16輸入/輸出。
- 用于序列化和反序列化本機Java對象的高級API。
- 支持YAML類型存儲庫中的所有類型??。
- 相對敏感的錯誤信息。
所以...
關(guān)于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應(yīng)用中使用兩種方式加載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編輯器可用?
是的,現(xiàn)在Spring?STS 3.7.0有Spring Boot YAML編輯器,它具有引導(dǎo)特定的內(nèi)容輔助,驗證,懸停信息和超鏈接檢測器。它了解Spring Boot的配置元數(shù)據(jù)。
檢查此鏈接以獲取更多信息: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/(以上內(nèi)容翻譯自此篇文章)
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
?
轉(zhuǎn)載于:https://www.cnblogs.com/EasonJim/p/7583837.html
總結(jié)
以上是生活随笔為你收集整理的YAML/Properties配置文件与Spring Boot(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pb11.5调用系统打印机
- 下一篇: android 解析网络数据(JSON)