最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot引用外部配置文件的方法步驟

 更新時(shí)間:2019年04月09日 09:37:41   作者:月未明  
這篇文章主要介紹了Springboot引用外部配置文件的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

現(xiàn)在的項(xiàng)目越來越多的都是打包成jar運(yùn)行尤其是springboot項(xiàng)目,這時(shí)候配置文件如果一直放在項(xiàng)目中,每次進(jìn)行簡(jiǎn)單的修改時(shí)總會(huì)有些不方便,這里我們看下打包成jar之后,從外部配置文件中讀取配置信息。

首先想到的是通過java代碼讀取外邊某個(gè)路徑下的文件,但是開始做之后發(fā)現(xiàn)好多問題。后來又找其它解決方案,正好搜到一種簡(jiǎn)單的解決方式:

java -jar demo.jar --Dspring.config.location=myapplication.properties

這樣就可以通過@value注解讀取myapplication.properties中的配置信息了。(上邊的大寫D好像可以不寫的)

后來想著直接把spring.config.location寫到application.properties配置文件中,然后指定一個(gè)固定的外部配置文件來獲取信息,這樣啟動(dòng)的時(shí)候就可以不用加最后一行了。

spring.config.location=C:\\Users\\Administrator\\git\\Display\\host.properties

可是這種方式是行不通的,比如我配置文件中有下面信息:

myname=hellopangkunkun

代碼:

myname=hellopangkunkun

我在啟動(dòng)的時(shí)候直接報(bào)這個(gè)地方的錯(cuò)誤,說是無法找到myname,導(dǎo)致整個(gè)項(xiàng)目出異常。

后來搜了下文章,對(duì)比官網(wǎng)文檔,又得到了一些信息:

24.3 Application property files
SpringApplication will load properties from application.properties files in the following locations and add them to the Spring Environment:

A /config subdirectory of the current directory.
The current directory
A classpath /config package
The classpath root
The list is ordered by precedence (properties defined in locations higher in the list override those defined in lower locations).

這里說了四種方式可以把配置文件放到外部的。
第一種是在jar包的同一目錄下建一個(gè)config文件夾,然后把配置文件放到這個(gè)文件夾下;
第二種是直接把配置文件放到j(luò)ar包的同級(jí)目錄;
第三種在classpath下建一個(gè)config文件夾,然后把配置文件放進(jìn)去;
第四種是在classpath下直接放配置文件。

這四種方式的優(yōu)先級(jí)是從一到四一次降低的。

注: 一二兩種方案其實(shí)不是jar包的同級(jí)目錄,而是(執(zhí)行啟動(dòng)指令的)同級(jí)目錄。為了便于理解我把上面的當(dāng)前目錄說成jar包的同級(jí)目錄,這種說法并不對(duì)。如果是剛開始接觸或者調(diào)試這塊,還是在jar包同級(jí)目錄方便。

由于我們是要從外部讀取文件,所以直接說前兩種。

看下文件目錄結(jié)構(gòu):

這里的application.properties是我們的配置文件,config是創(chuàng)建的另外一個(gè)目錄,放的也是application.properties。

Display-1.0-SNAPSHOT.jar中可以包含application.properties配置文件也可以不包含。

為了驗(yàn)證可以在config中設(shè)置myname=name1,jar同級(jí)目錄中設(shè)置myname=name2,如果jar中包含配置文件,將其中設(shè)置成myname=name3。

直接使用指令啟動(dòng):

java -jar Display-1.0-SNAPSHOT.jar

之后驗(yàn)證可得知,我們通過@Value(“${myname}”)獲取到的myname的值是name1,把config下的配置文件刪除后獲取的結(jié)果是name2,都刪除后才會(huì)獲取jar包中配置文件的數(shù)據(jù)name3。

另外如果我們想要想配置測(cè)試、開發(fā)、生產(chǎn)環(huán)境一樣使用另外一個(gè)配置文件怎么來實(shí)現(xiàn)呢?

下面繼續(xù),我把a(bǔ)pplication.properties的信息修改如下:

spring.profiles.active=dev,host

配置文件目錄結(jié)構(gòu):

 

我又新增了一個(gè)名為application-host.properties的配置文件,同理也可以把這個(gè)文件考出來放到j(luò)ar包外面,同級(jí)目錄或者config下。

這樣項(xiàng)目啟動(dòng)之后dev配置文件和host配置文件都會(huì)生效。

 

這里為了突出其他的配置文件我只把host的拷出來了,dev的還是在jar包里,application.properties配置文件放在jar中也一樣,我們需要的主要是host的配置文件。

這樣每次修改的時(shí)候只需要修改配置文件信息,然后重啟項(xiàng)目就好,不需要重新打包。

如果想要只修改配置文件,不重啟項(xiàng)目就能生效,可以考慮用java來讀取配置文件中的數(shù)據(jù),把它當(dāng)作一個(gè)普通文件來讀取,或者寫到其他數(shù)據(jù)庫中也行。上面這些方案已經(jīng)能夠滿足我的需求了,所以其他的不在做了。

最后提個(gè)問題,也是我沒弄明白的,希望知道的各位能夠給個(gè)答案:

我把spring.config.location這個(gè)配置寫到配置文件中為什么沒有生效?

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決Mybatis中mapper的ID沖突問題

    解決Mybatis中mapper的ID沖突問題

    這篇文章主要介紹了解決Mybatis中mapper的ID沖突問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java 在PPT中創(chuàng)建散點(diǎn)圖的實(shí)現(xiàn)示例

    Java 在PPT中創(chuàng)建散點(diǎn)圖的實(shí)現(xiàn)示例

    本文將以Java代碼示例展示如何在PPT幻燈片中創(chuàng)建散點(diǎn)圖表。文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Hibernate雙向一對(duì)一映射關(guān)系配置代碼實(shí)例

    Hibernate雙向一對(duì)一映射關(guān)系配置代碼實(shí)例

    這篇文章主要介紹了Hibernate雙向一對(duì)一映射關(guān)系配置代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 簡(jiǎn)單了解Java方法的定義和使用實(shí)現(xiàn)

    簡(jiǎn)單了解Java方法的定義和使用實(shí)現(xiàn)

    這篇文章主要給大家介紹了關(guān)于Java中方法使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • Java實(shí)現(xiàn)經(jīng)典游戲之大魚吃小魚

    Java實(shí)現(xiàn)經(jīng)典游戲之大魚吃小魚

    這篇文章主要為大家詳細(xì)介紹了如何利用Java語言實(shí)現(xiàn)經(jīng)典游戲之大魚吃小魚,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java游戲開發(fā)有一定幫助,需要的可以參考一下
    2022-08-08
  • JVM教程之內(nèi)存管理和垃圾回收(三)

    JVM教程之內(nèi)存管理和垃圾回收(三)

    這篇文章主要介紹了JVM學(xué)習(xí)筆記的第三篇內(nèi)存管理和垃圾回收,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 在Java和Java Web中放置圖片、視頻、音頻、圖像文件的方法

    在Java和Java Web中放置圖片、視頻、音頻、圖像文件的方法

    在Java軟件中放置圖片,通常涉及將圖片文件(如JPEG、PNG等)作為資源包含在我們的項(xiàng)目中,并在代碼中通過適當(dāng)?shù)姆绞揭眠@些資源,這可以通過多種方式實(shí)現(xiàn),但最常見的是在Java桌面應(yīng)用(如Swing或JavaFX)或Web應(yīng)用(如Servlet/JSP)中
    2024-11-11
  • Java實(shí)現(xiàn)幾種序列化方式總結(jié)

    Java實(shí)現(xiàn)幾種序列化方式總結(jié)

    本篇文章主要介紹了Java實(shí)現(xiàn)幾種序列化方式總結(jié),包括Java原生以流的方法進(jìn)行的序列化、Json序列化、FastJson序列化、Protobuff序列化,有興趣的可以了解一下,
    2017-03-03
  • spring boot使用sharding jdbc的配置方式

    spring boot使用sharding jdbc的配置方式

    這篇文章主要介紹了spring boot使用sharding jdbc的配置方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • java多線程創(chuàng)建及線程安全詳解

    java多線程創(chuàng)建及線程安全詳解

    多線程是日常開發(fā)中的常用知識(shí),也是難用知識(shí)。通這篇文章主要給大家介紹了關(guān)于java多線程創(chuàng)建及線程安全的相關(guān)資料,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05

最新評(píng)論

新兴县| 衡山县| 河西区| 环江| 青龙| 汉沽区| 淄博市| 张家川| 达拉特旗| 普兰店市| 五常市| 德惠市| 丹江口市| 丹凤县| 安顺市| 莱芜市| 农安县| 泰州市| 双桥区| 万载县| 宿迁市| 黄骅市| 安乡县| 大化| 河曲县| 文安县| 石屏县| 鄂州市| 太原市| 江津市| 宝坻区| 万载县| 阳朔县| 深泽县| 奉贤区| 隆昌县| 上高县| 色达县| 晋州市| 绍兴县| 汉川市|