国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Springboot讀取外部配置文件,項目部署時配置讀取不到問題

這篇具有很好參考價值的文章主要介紹了Springboot讀取外部配置文件,項目部署時配置讀取不到問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

需求:

最近項目部署,但是每個地方都有個別地方配置的差異,我們每次打包后再進行修改極度不方便,這里將有關(guān)的配置都抽取出來,放在jar包外進行配置,這樣以后更新時只需要將jar包更換然后重啟即可,配置讀取外部的固定配置文件。

SpringBoot 配置

springboot默認配置的加載位置和優(yōu)先級順序
springboot啟動時會掃描以下位置的application.properties和application.yml文件作為默認的配置文件。

  • file: ./config/
  • file: ./
  • classpath: /config/
  • classpath: /
    所有的配置文件都會被加載,但高優(yōu)先級的配置會覆蓋低優(yōu)先的配置,上面的優(yōu)先級為由高到低排列,./config/ 的優(yōu)先級最高,我們創(chuàng)建項目時默認的放在resources目錄下的優(yōu)先級是最低的。 classpath可以理解為我們項目內(nèi)部的沒打包時的resources文件夾下的,file理解為和jar包同級的目錄(如果在linux中啟動項目時寫的啟動路徑的相對位置和file的文件不是同級時外部配置文件會出現(xiàn)讀取失敗,可以翻到文章最下面)。

配置文件中帶spring.profile的文件會優(yōu)先被加載

啟動項目時指定配置文件的位置

java -jar xxxx.jar -Dspring.config.location=/home/test/application.yml

啟動時加載/home/test文件夾下的application.yml作為配置文件。這里還可以指定端口、生效的配置文件、日志打印等

java -jar xxxx.jar -Dspring.profiles.active=prod -Dspring.config.location=/home/test/application.yml
-Dserver.port=8081  > logs/xxxlog.log 2>&1 &

?

application配置
非默認配置文件,這里我是config.properties

可以通過注解_@PropertySource_ 來指定配置文件的位置,value中提供兩種方式 classpath 和 file

@Configuration
@ConfigurationProperties(prefix = "config", ignoreUnknownFields = false)
@PropertySource(name = "config.properties"
        ,value = {"classpath:/config.properties","file:./config/config.properties"}
        ,ignoreResourceNotFound = true
        ,encoding = "UTF-8")

value是一個數(shù)組,可以放多個配置文件,從左到右進行加載,后面的會覆蓋掉前面的配置,ignoreResourceNotFound = true主要用來忽略文件不存在的情況,如果第一個目錄下沒有找到對應(yīng)的文件內(nèi)容,就向后繼續(xù)找不加這個配置第一個文件找不到時會報錯。ConfigurationProperties 是用來減少下面@Value注解的參數(shù),如果不加這個注解,配置項中配置的是 config.username = 'liuch’
這時你的@Value(“ c o n f i g . m a i n t T y p e " ) 需要寫完整,如果配置了以后 @ V a l u e ( " {config.maintType}")需要寫完整,如果配置了以后@Value(" config.maintType")需要寫完整,如果配置了以后@Value("{maintType}”)即可。
部署時配置讀取失敗
?

注意: 在linux啟動項目時,config文件夾要和啟動根目錄的相對路徑是同一級,否則讀取不到配置,需要在啟動項目時指定配置文件位置。

例: 現(xiàn)在jar和config放在 /home/liuch/app/ 文件夾下,我們啟動時需要先進入到 /home/liuch/app 目錄,然后再
nohup java -jar xxx.jar >/dev/null 2>&1 &,直接使用命令nohup java -jar /home/liuch/app/xxx.jar >/dev/null 2>&1 & 啟動時不會去讀取config文件夾下的配置文件,需要使用-Dspring.config.location= 指定配置文件位置,此時我們的非默認配置文件是讀取不到的,我們可以在application.yml文件中配置需要加載的非默認配置文件位置,

server:
  port: 8088
config:
  path: /home/liuch/config.properties
@PropertySource(value = {"file:${config.path}"}, encoding="utf-8")

下面的@Value的用法和之前一樣。
?

附:springboot項目啟動時的參數(shù)

/usr/local/java/jdk1.8.0_131/bin/java -jar -server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/spb_zcmweb/8103/dump/heap/
 -Djava.io.tmpdir=/data/liuch/tmp/ 
 -Dserver.port=8103 
 -Dcom.sun.management.jmxremote
 -Dcom.sun.management.jmxremote.port=5103 
 -Dcom.sun.management.jmxremote.rmi.port=6103 
 -Dcom.sun.management.jmxremote.authenticate=false 
 -Dcom.sun.management.jmxremote.ssl=false 
 -Dcom.sun.management.jmxremote.access.file=/usr/local/java/jdk1.8.0_131/jre/lib/management/jmxremote.access 
 -Xmx2G -Xms2G -XX:+DisableExplicitGC -verbose:gc -Xloggc:/data/liuch/log/gc.%t.log -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCTaskTimeStamps -XX:+PrintGCDetails -XX:+PrintGCDateStamps 
 -Dserver.connection-timeout=60000 
 -Dserver.tomcat.accept-count=1000 
 -Dserver.tomcat.max-threads=300 
 -Dserver.tomcat.min-spare-threads=65 
 -Dserver.tomcat.accesslog.enabled=false 
 -Dserver.tomcat.accesslog.directory=/data/liuch/log/ 
 -Dserver.tomcat.accesslog.prefix=access_log 
 -Dserver.tomcat.accesslog.pattern=combine 
 -Dserver.tomcat.accesslog.suffix=.log 
 -Dserver.tomcat.accesslog.rotate=true 
 -Dserver.tomcat.accesslog.rename-on-rotate=true 
 -Dserver.tomcat.accesslog.request-attributes-enabled=true 
 -Dserver.tomcat.accesslog.buffered=true 
 -XX:NewRatio=4 -XX:SurvivorRatio=30 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=8 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:ParallelGCThreads=24 -XX:ConcGCThreads=24 -XX:-UseGCOverheadLimit -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSFullGCsBeforeCompaction=1 -XX:+CMSParallelRemarkEnabled -XX:+CMSScavengeBeforeRemark -XX:+ParallelRefProcEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSMaxAbortablePrecleanTime=6000 -XX:CompileThreshold=10 -XX:MaxInlineSize=1024 -Dsun.net.client.defaultConnectTimeout=60000 
 -Dsun.net.client.defaultReadTimeout=60000 
 -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.ttl=300 
 -Djsse.enableCBCProtection=false 
 -Djava.security.egd=file:/dev/./urandom 
 -Dfile.encoding=UTF-8 
 -Dlog.path=/data/liuch/log/ 
 -Dspring.profiles.active=online  
 /data/liuch/deploy/xxxx.jar zcmweb 

原文鏈接:https://blog.csdn.net/chang100111/article/details/122191892文章來源地址http://www.zghlxwxcb.cn/news/detail-472256.html

到了這里,關(guān)于Springboot讀取外部配置文件,項目部署時配置讀取不到問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • SpringBoot配置外部Tomcat項目啟動流程源碼分析

    SpringBoot配置外部Tomcat項目啟動流程源碼分析

    SpringBoot應(yīng)用默認以Jar包方式并且使用內(nèi)置Servlet容器(默認Tomcat),該種方式雖然簡單但是默認不支持JSP并且優(yōu)化容器比較復雜。故而我們可以使用習慣的外置Tomcat方式并將項目打War包。 ① 同樣使用Spring Initializer方式創(chuàng)建項目 ② 打包方式選擇\\\"war\\\" ③ 選擇添加的模塊 ④ 創(chuàng)建的

    2024年02月04日
    瀏覽(25)
  • 10SpringBoot 靜態(tài)資源訪問
                    
            
11Springboot的默認配置文件和外部配置文件及加載順序

    10SpringBoot 靜態(tài)資源訪問 11Springboot的默認配置文件和外部配置文件及加載順序

    ? ? ?? ?做web開發(fā)的時候,我們往往會有很多靜態(tài)資源,如html、圖片、css等。那如何向前端返回靜態(tài)資源呢? ? ? ? ?以前做過web開發(fā)的同學應(yīng)該知道,我們以前創(chuàng)建的web工程下面會有一個webapp的目錄,我們只要把靜態(tài)資源放在該目錄下就可以直接訪問。 ? ? ? ?但是,基

    2023年04月08日
    瀏覽(22)
  • SpringBoot 讀取項目中靜態(tài)資源文件

    SpringBoot 讀取項目中靜態(tài)資源文件

    PathMatchingResourcePatternResolver是一個 Ant模式通配符 的Resource查找器,可以用來查找類路徑下或者文件系統(tǒng)中的資源。 ???在SpringBoot中盡量 避免使用 ResourceUtils讀取資源文件。 ResourceUtils.getFile() 獲取的是資源文件的絕對路徑,當項目打包為jar或者war包之后部署,資源文件的絕對

    2024年02月07日
    瀏覽(25)
  • Springboot讀取配置文件

    Springboot讀取配置文件

    springboot項目中不同配置文件的優(yōu)先加載順序 為:properties yml yaml自定義核心類配置 自定義配置文件的加載 一般系統(tǒng)會加載默認的application.properties或者application.yml,但如果使用自定義配置文件,可使用下面方式進行加載: @PropertySource(\\\"classpath:myApplication.properties\\\")加載自定義配置

    2024年01月17日
    瀏覽(19)
  • SpringBoot訪問靜態(tài)資源和jar外部靜態(tài)資源,部署前端打包后的vue項目放入靜態(tài)資源里

    SpringBoot訪問靜態(tài)資源和jar外部靜態(tài)資源,部署前端打包后的vue項目放入靜態(tài)資源里

    記錄一下使用SpringBoot訪問靜態(tài)資源和SpringBoot打包之后的jar外部靜態(tài)資源,在開發(fā)的時候,一般選擇前后端分離的方式,前端使用vue 后端使用SpringBoot,通常情況下,部署都是前端通過http去請求后端資源,涉及到http請求,那么肯定需要資源的目標地址IP,一般云端部署給到I

    2024年02月09日
    瀏覽(23)
  • SpringBoot項目打成jar包之后無法讀取資源文件【jar包文件的讀取方式】

    SpringBoot項目打成jar包之后無法讀取資源文件【jar包文件的讀取方式】

    將文件放在resources目錄下,確保資源文件被打包到j(luò)ar包中 如何判斷資源是否在jar包中,只需要解壓jar包,然后查詢資源名稱即可 讀取文件的時候?qū)懗山^對路徑,肯定是不行的,這個很容易理解。 那讀取文件的時候?qū)懴鄬β窂绞欠窨梢阅??答案也是不行,見下面解釋?這是原

    2024年02月14日
    瀏覽(24)
  • SpringBoot配置文件的注入和讀取

    SpringBoot配置文件的注入和讀取

    目錄 1. 配置文件的作用 2. 兩種配置文件的格式: 2.1 properties 基本語法: 2.1.1 寫入 2.1.2 讀取 執(zhí)行原理 2.1.3 缺點分析 2.2 yml 基本語法: 2.2.1 寫入(非對象) 2.2.3 配置對象 2.2.4 配置集合 多個配置文件 ? ? ? ? SpringBoot 是為了簡化 Spring 的操作,提高 Spring 項目的開發(fā)效率,它

    2024年02月07日
    瀏覽(21)
  • 芋道SpringBoot配置Maven、創(chuàng)建SpringBoot項目、創(chuàng)建Web接口、讀取配置信息

    芋道SpringBoot配置Maven、創(chuàng)建SpringBoot項目、創(chuàng)建Web接口、讀取配置信息

    ??作者主頁:青花鎖 ??簡介:Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者??、Java微服務(wù)架構(gòu)公號作者?? ??簡歷模板、學習資料、面試題庫、技術(shù)互助 ??文末獲取聯(lián)系方式 ?? 第一章 芋道 Spring Boot 快速入門 芋道 SpringBoot是一款國產(chǎn)的SpringCloud微服務(wù)框架,包括Outh2.0、微服務(wù)網(wǎng)關(guān)、微服務(wù)注冊中

    2024年04月23日
    瀏覽(20)
  • springboot讀取多文件配置(包括nacos)

    首先來簡單了解一下這個類。 ResourceBundle類主要是用來 解決國際化和本地化問題 ,就我的理解,就是類似于前端界面的字體顯示,國際化操作一般都要支持多國語言,那么這個ResourceBundle類就能夠簡單快速的解決這個問題。 同時,這個類只能支持讀取properties屬性文件,和

    2023年04月09日
    瀏覽(24)
  • SpringBoot讀取配置文件中的內(nèi)容

    SpringBoot讀取配置文件中的內(nèi)容

    配置文件application.yml: Environment 是 springboot 核心的環(huán)境配置接口,它提供了簡單的方法來訪問應(yīng)用程序?qū)傩?,包括系統(tǒng)屬性、操作系統(tǒng)環(huán)境變量、命令行參數(shù)、和應(yīng)用程序配置文件中定義的屬性等等。 Springboot 程序啟動加載流程里,會執(zhí)行SpringApplication.run中的prepareEnvironmen

    2024年01月21日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包