亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

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

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

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

myname=hellopangkunkun

代碼:

myname=hellopangkunkun

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

后來搜了下文章,對比官網(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包的同一目錄下建一個config文件夾,然后把配置文件放到這個文件夾下;
第二種是直接把配置文件放到j(luò)ar包的同級目錄;
第三種在classpath下建一個config文件夾,然后把配置文件放進(jìn)去;
第四種是在classpath下直接放配置文件。

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

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

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

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

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

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

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

直接使用指令啟動:

java -jar Display-1.0-SNAPSHOT.jar

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

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

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

spring.profiles.active=dev,host

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

 

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

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

 

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

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

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

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

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

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

相關(guān)文章

  • 利用Spring?boot+LogBack+MDC實(shí)現(xiàn)鏈路追蹤

    利用Spring?boot+LogBack+MDC實(shí)現(xiàn)鏈路追蹤

    這篇文章主要介紹了利用Spring?boot+LogBack+MDC實(shí)現(xiàn)鏈路追蹤,MDC?可以看成是一個與當(dāng)前線程綁定的哈希表,可以往其中添加鍵值對,下文詳細(xì)介紹需要的小伙伴可以參考一下
    2022-04-04
  • Java Spring分別實(shí)現(xiàn)定時任務(wù)方法

    Java Spring分別實(shí)現(xiàn)定時任務(wù)方法

    這篇文章主要為大家詳細(xì)介紹了Java與Spring設(shè)置動態(tài)定時任務(wù)的方法,定時任務(wù)的應(yīng)用場景十分廣泛,如定時清理文件、定時生成報(bào)表、定時數(shù)據(jù)同步備份等
    2022-07-07
  • Spring Boot中的JdbcTemplate是什么及用法小結(jié)

    Spring Boot中的JdbcTemplate是什么及用法小結(jié)

    Spring Boot中的JdbcTemplate是一個強(qiáng)大的數(shù)據(jù)庫訪問工具,它簡化了數(shù)據(jù)庫操作的過程,在本文中,我們了解了JdbcTemplate的基本概念,并演示了如何在Spring Boot應(yīng)用程序中使用它,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • 關(guān)于idea的gitignore文件編寫及解決ignore文件不生效問題

    關(guān)于idea的gitignore文件編寫及解決ignore文件不生效問題

    這篇文章主要介紹了idea的gitignore文件編寫及解決ignore文件不生效問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 詳解Spring Boot Oauth2緩存UserDetails到Ehcache

    詳解Spring Boot Oauth2緩存UserDetails到Ehcache

    這篇文章主要介紹了詳解Spring Boot Oauth2緩存UserDetails到Ehcache,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Java多線程并發(fā)FutureTask使用詳解

    Java多線程并發(fā)FutureTask使用詳解

    Java?的多線程機(jī)制本質(zhì)上能夠完成兩件事情,異步計(jì)算和并發(fā),F(xiàn)utureTask?是基于?Runnable?實(shí)現(xiàn)的一個可取消的異步調(diào)用?API,本文給大家介紹Java?多線程并發(fā)FutureTask及基本使用,需要的朋友可以參考下
    2022-06-06
  • Spring?Cloud?Ribbon?中的?7?種負(fù)載均衡策略的實(shí)現(xiàn)方法

    Spring?Cloud?Ribbon?中的?7?種負(fù)載均衡策略的實(shí)現(xiàn)方法

    Ribbon?內(nèi)置了?7?種負(fù)載均衡策略:輪詢策略、權(quán)重策略、隨機(jī)策略、最小連接數(shù)策略、重試策略、可用性敏感策略、區(qū)域性敏感策略,并且用戶可以通過繼承?RoundRibbonRule?來實(shí)現(xiàn)自定義負(fù)載均衡策略,對Spring?Cloud?Ribbon負(fù)載均衡策略相關(guān)知識感興趣的朋友一起看看吧
    2022-03-03
  • Spring?MVC基于注解的使用之JSON數(shù)據(jù)處理的方法

    Spring?MVC基于注解的使用之JSON數(shù)據(jù)處理的方法

    這篇文章主要介紹了Spring?MVC基于注解的使用JSON數(shù)據(jù)處理,json是一種輕量級的數(shù)據(jù)交換格式,是一種理想的數(shù)據(jù)交互語言,它易于閱讀和編寫,同時也易于機(jī)器解析和生成,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • SpringBoot?Test的webEnvironment源碼解讀

    SpringBoot?Test的webEnvironment源碼解讀

    這篇文章主要為大家介紹了SpringBoot?Test的webEnvironment源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Mybatis Plus 字段為空值時執(zhí)行更新方法未更新解決方案

    Mybatis Plus 字段為空值時執(zhí)行更新方法未更新解決方案

    這篇文章主要介紹了Mybatis Plus 字段為空值時執(zhí)行更新方法未更新解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評論