使用java?-jar修改SpringBoot中application.properties的配置項(xiàng)
java -jar修改SpringBoot中application.properties配置項(xiàng)
如果Spring Boot整合了Maven來管理項(xiàng)目依賴的話,常見的打包方式有jar和war。如果使用war包,若要運(yùn)行項(xiàng)目,需要把war丟到Tomcat、JBoss之類的容器中。
此時(shí)修改配置文件,可以直接在解壓后的classes/application.properties文件中修改配置項(xiàng)。
而倘若制作成jar包,如何修改application.properties中的配置項(xiàng)呢?
問題描述
application.properties
application.properties配置文件如下
# config for picket dynamicPool用于上傳圖片,static用于人臉庫以圖搜圖 picket.dynamicFaceLib=1 picket.staticFaceLib=2 picket.similarity=0.7 picket.pushUrl=http://localhost:8080/api/event
比如說Spring Boot項(xiàng)目最后達(dá)成了jar包platform。則可以如下方式運(yùn)行
前提
在Windows環(huán)境下配置了JDK環(huán)境變量。
C:\Users\lenovo\Desktop>echo %JAVA_HOME% C:\Program Files\Java\jdk1.8.0_131 C:\Users\lenovo\Desktop>java -version java version "1.8.0_201" Java(TM) SE Runtime Environment (build 1.8.0_201-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
運(yùn)行
使用如下方式運(yùn)行。
java -jar platform.jar
由于制作的jar包不再存在application.properties文件,那么如何靈活的在命令行運(yùn)行時(shí)指定picket.pushUrl,來修改事件的推送url呢?
解決方式
可以使用如下的方式來修改application.properties配置項(xiàng)的默認(rèn)值
java -jar platform.jar --picket.pushUrl="http://192.168.1.110:8080/api/eventHappen"
此時(shí)便使用了修改后的值,而不再是application.properties文件中配置的值。
外部配置
Spring Boot允許使用properties文件、yaml文件或者命令行參數(shù)作為外部配置。
Spring Boot是可以基于jar包運(yùn)行的,打成jar包的程序可以直接通過下面的命令行運(yùn)(參見Spring Boot實(shí)戰(zhàn)p143)
java -jar xx.jar
可以通過如下命令行修改Tomcat端口`
java -jar xx.jar --server.port=9090
Java:java -jar命令講解
1. 當(dāng)前ssh窗口被鎖定,可按CTRL + C打斷程序運(yùn)行,或直接關(guān)閉窗口,程序退出
#正常啟動(dòng)jar包 java -jar XXX.jar #當(dāng)前ssh窗口被鎖定,可按CTRL + C打斷程序運(yùn)行,或直接關(guān)閉窗口,程序退出。
2. 當(dāng)前ssh窗口不被鎖定,但是當(dāng)窗口關(guān)閉時(shí),程序中止運(yùn)行
#當(dāng)前ssh窗口不被鎖定,但是當(dāng)窗口關(guān)閉時(shí),程序中止運(yùn)行 java -jar XXX.jar &
3. 當(dāng)窗口關(guān)閉時(shí),程序也不會(huì)中止運(yùn)行
#當(dāng)用 nohup 命令執(zhí)行作業(yè)時(shí),缺省情況下該作業(yè)的所有輸出被重定向到nohup.out的文件中,除非另外指定了輸出文件 nohup java -jar XXX.jar &
4. 輸出重定向到temp.file文件
#輸出重定向到temp.file文件 nohup java -jar XXX.jar >temp.txt & #即輸出內(nèi)容不打印到屏幕上,而是輸出到temp.file文件中
5. 啟動(dòng)jar包或war包時(shí),配置靜態(tài)變量
#配置靜態(tài)變量并不輸出日志到控制臺(tái)或者日志文件中 nohup java -jar ?/data/server/ifsmp/ifsmp.war --spring.profiles.active=test --server.port=8080 >/dev/null 2>&1 & # >/dev/null 2>&1 含義: # 該條shell命令將不會(huì)輸出任何信息到控制臺(tái),也不會(huì)有任何信息輸出到文件中 # -–spring.profiles.active=test 含義: #連續(xù)的兩個(gè)減號(hào)–就是對(duì)application.properties中的屬性值進(jìn)行賦值的標(biāo)識(shí),等價(jià)于我們?cè)赼pplication.properties中添加屬性spring.profiles.active=test
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Security實(shí)現(xiàn)微信公眾號(hào)網(wǎng)頁授權(quán)功能
這篇文章主要介紹了Spring Security中實(shí)現(xiàn)微信網(wǎng)頁授權(quán),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08
Spring IOC的相關(guān)注解運(yùn)用詳解
這篇文章主要介紹了Spring IOC的相關(guān)注解運(yùn)用詳解,純注解實(shí)現(xiàn)IOC需要一個(gè)Java類代替xml文件,這個(gè)Java類上方需要添加@Configuration,表示該類是一個(gè)配置類,作用是代替配置文件,需要的朋友可以參考下2023-08-08
Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(15)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望可以幫到你2021-07-07
springboot攔截器不攔截靜態(tài)資源,只攔截controller的實(shí)現(xiàn)方法
這篇文章主要介紹了springboot攔截器不攔截靜態(tài)資源,只攔截controller的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
Idea 自動(dòng)生成測試的實(shí)現(xiàn)步驟
當(dāng)我們?cè)趯懲暌恍┙涌诜椒ê笮枰獪y試時(shí),一個(gè)一個(gè)新建測試類比較麻煩 idea給我們提供了快捷辦法,本文主要介紹了Idea 自動(dòng)生成測試的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05
詳述IntelliJ IDEA 中自動(dòng)生成 serialVersionUID 的方法(圖文)
本篇文章主要介紹了詳述IntelliJ IDEA 中自動(dòng)生成 serialVersionUID 的方法(圖文),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-11-11
springboot 定時(shí)任務(wù)@Scheduled實(shí)現(xiàn)解析
這篇文章主要介紹了springboot 定時(shí)任務(wù)@Scheduled實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09

