日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

YAML/Properties配置文件与Spring Boot(转)

發(fā)布時(shí)間:2023/12/20 javascript 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 YAML/Properties配置文件与Spring Boot(转) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

多年來(lái),Java開發(fā)人員依賴于屬性文件或xml文件來(lái)指定應(yīng)用程序配置。在企業(yè)應(yīng)用程序中,人們可以為每個(gè)環(huán)境(如開發(fā),分段和生產(chǎn))創(chuàng)建單獨(dú)的文件,以定義相應(yīng)環(huán)境的屬性。但是,通過(guò)Spring引導(dǎo),我們可以選擇在單個(gè)“yml”文件中配置所有配置文件。

什么是YAML?

YAML是JSON的超集,因此這是一種非常方便的格式,用于指定分層配置數(shù)據(jù)。

YAML官網(wǎng):它是所有編程語(yǔ)言的人性化數(shù)據(jù)序列化標(biāo)準(zhǔn)。

YAML更易讀,對(duì)于開發(fā)人員的讀/寫配置文件是有好處的。

YAML設(shè)計(jì)目標(biāo)

從YAML官方規(guī)范:

  • YAML易于人類閱讀。
  • YAML數(shù)據(jù)在編程語(yǔ)言之間是可移植的。
  • YAML匹配敏捷語(yǔ)言的本機(jī)數(shù)據(jù)結(jié)構(gòu)。
  • YAML具有一致的模型來(lái)支持通用工具。
  • YAML支持單程處理。
  • YAML具有表現(xiàn)力和可擴(kuò)展性。
  • YAML易于實(shí)施和使用。
  • 我應(yīng)該怎么考慮呢?

    即使您的YAML文件不完整,也無(wú)法檢測(cè)到它,但XML解析器始終檢查格式良好的文檔。

    不要考慮:

    YAML文件不考慮良好的序列化,而不像JSON,因?yàn)樗腔趯?duì)象。

    那么,XML呢??

    XML主要是機(jī)器到機(jī)器的通信。

    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庫(kù)進(jìn)行YAML支持。

    SnakeYAML

    Snakeyaml是Java虛擬機(jī)的YAML解析器和發(fā)射器。

    官方網(wǎng)站:https://bitbucket.org/asomov/snakeyaml

    SnakeYAML功能:

    • 一個(gè)完整的YAML 1.1解析器。具體來(lái)說(shuō),SnakeYAML可以解析規(guī)范中的所有示例。
    • Unicode支持包括UTF-8/UTF-16輸入/輸出。
    • 用于序列化和反序列化本機(jī)Java對(duì)象的高級(jí)API。
    • 支持YAML類型存儲(chǔ)庫(kù)中的所有類型??。
    • 相對(duì)敏感的錯(cuò)誤信息。

    所以...

    關(guān)于YAML,在Spring Boot框架中如何支持讀寫呢?

    是的,如果您的類路徑中包含Snakeyaml庫(kù),則SpringApplication類將自動(dòng)支持YAML作為屬性文件的替代方法。

    如果你在POM使用Starter,那么spring-boot-starter會(huì)自動(dòng)加載yml文件(application.yml)

    您可以在這里檢查Spring-Boot-Starter。

    如何在Spring Boot中加載?

    YamlPropertiesFactoryBean將加載YAML做為Properties和YamlMapFactoryBean將加載YAML做為Map。

    更多的請(qǐng)閱讀:Spring Boot Doc

    如何使用YamlPropertiesFactoryBean使用Spring Framework加載YAML文件?

    從Spring框架4.1.0增加了對(duì)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)容輔助,驗(yàn)證,懸停信息和超鏈接檢測(cè)器。它了解Spring Boot的配置元數(shù)據(jù)。

    檢查此鏈接以獲取更多信息:STS 3.7.0 YAML編輯器。

    Spring Boot YAML演示的例子?

    如果你想了解spring啟動(dòng)yaml的工作原理,請(qǐng)參考這個(gè)例子來(lái)自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(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。