走進(jìn)SpringBoot之配置文件與多環(huán)境詳解
在第一個(gè)Springboot項(xiàng)目中我們知道,SpringBoot項(xiàng)目的默認(rèn) 配置文件在main/resources下的application.properties下,我們接直接用之前的項(xiàng)目了解一下配置文件。
application.properties配置文件中 配置整個(gè)springboot所需的配置,例如端口,項(xiàng)目名稱,redis信息,到后續(xù)開(kāi)發(fā)springcloud時(shí)的注冊(cè)中心等等的配置信息,當(dāng)然也可以自己自定義的配置項(xiàng)。
我們打開(kāi)application.properties,添加配置項(xiàng):
server.port=8083 name=this is default
然后改寫(xiě)之前的HelloSpringBootController類:
@RestController public class HelloSpringBootController { @Value("${name}") private String name; @RequestMapping("/sayHello") public String sayHello() { return "Hello ,"+this.name; } }
接著啟動(dòng)項(xiàng)目可以看見(jiàn):
啟動(dòng)了8083 端口
我們?cè)L問(wèn)一下http://127.0.0.1:8083/sayHello,效果如下:
訪問(wèn) 成功,配置項(xiàng)正確獲取了。
但是在我們正常的開(kāi)發(fā)中會(huì)有多個(gè)環(huán)境,測(cè)試環(huán)境,開(kāi)發(fā)環(huán)境,生產(chǎn)環(huán)境,聯(lián)調(diào)環(huán)境等等,每個(gè)環(huán)境下的配置不盡相同,那就需要我們配置多環(huán)境的配置文件:
首先在main/resources下 創(chuàng)建以下幾個(gè)環(huán)境配置文件
修改各個(gè)配置文件的端口和name值
在application.properties下設(shè)置:
spring.profiles.active=prod
確定當(dāng)前使用的是哪個(gè)環(huán)境,這邊環(huán)境的值與application-prod.properties中-后面的值對(duì)應(yīng),這是SpringBoot約定好的,
啟動(dòng)項(xiàng)目:
會(huì)發(fā)現(xiàn)啟動(dòng)了application-prod,properties配置下的8082端口,因?yàn)槲覀冊(cè)O(shè)置了當(dāng)前的環(huán)境是prod,所以application-prod,properties生效了。
在瀏覽器中輸入http://127.0.0.1:8082/sayHello,效果如下:
獲取到 了正確的端口和值,可以依次測(cè)試各個(gè)環(huán)境。
基本的多環(huán)境配置如上述。
但是在工作項(xiàng)目中我們將一個(gè)項(xiàng)目打包之后發(fā)布,springboot 項(xiàng)目使用java -jar xxx.jar 來(lái)啟動(dòng)項(xiàng)目。那么我們現(xiàn)在打包之后部署在開(kāi)發(fā)環(huán)境中,配置文件中應(yīng)該這樣配置
spring.profiles.active=dev
那么如果我們要將項(xiàng)目部署到測(cè)試環(huán)境中,是不是需要修改一下配置文件,然后重新打包部署呢?顯然不是的,當(dāng)然有更好的辦法來(lái)解決。
首先我們將 項(xiàng)目打包,當(dāng)然我們一般會(huì)有一些自動(dòng)打包的腳本,但是這邊我就 直接使用cmd打包
打開(kāi)cmd進(jìn)入當(dāng)前項(xiàng)目的目錄
運(yùn)行mvn install (首先確認(rèn)你已經(jīng)安裝了maven并且配置好環(huán)境變量,mvn是可以運(yùn)行的)
運(yùn)行成功之后進(jìn)入target目錄會(huì)看見(jiàn),項(xiàng)目已經(jīng)打包成jar了
cmd 繼續(xù)進(jìn)入target目錄 (jar所在的目錄)
運(yùn)行:
java -jar PropertiesSpringBoot-0.0.1-SNAPSHOT.jar --spring.profiles.active=test
運(yùn)行jar包,并使用--配置項(xiàng)=值,來(lái)設(shè)置配置項(xiàng)
可以看見(jiàn)啟動(dòng)了測(cè)試環(huán)境8083
訪問(wèn)正確!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java?GenericObjectPool?對(duì)象池化技術(shù)之SpringBoot?sftp?連接池工具類詳解
這篇文章主要介紹了Java?GenericObjectPool?對(duì)象池化技術(shù)之SpringBoot?sftp?連接池工具類詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04SpringBoot結(jié)合Redis實(shí)現(xiàn)會(huì)話管理功能
在Web應(yīng)用程序中,會(huì)話管理是一項(xiàng)重要的任務(wù),它涉及跟蹤用戶的身份驗(yàn)證狀態(tài)和其他相關(guān)信息,以確保用戶在與應(yīng)用程序交互時(shí)的連續(xù)性和安全性,在本文中,我們將探討如何使用Spring Boot和Redis實(shí)現(xiàn)高效的會(huì)話管理2023-06-06Springboot+Shiro記錄用戶登錄信息并獲取當(dāng)前登錄用戶信息的實(shí)現(xiàn)代碼
這篇文章主要介紹了Springboot+Shiro記錄用戶登錄信息,并獲取當(dāng)前登錄用戶信息,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05Java編程用兩個(gè)棧實(shí)現(xiàn)隊(duì)列代碼分享
這篇文章主要介紹了Java編程用兩個(gè)棧實(shí)現(xiàn)隊(duì)列代碼分享,具有一定參考價(jià)值,這里給大家分享下,供需要的朋友了解。2017-10-10關(guān)于Assert.assertEquals報(bào)錯(cuò)的問(wèn)題及解決
這篇文章主要介紹了關(guān)于Assert.assertEquals報(bào)錯(cuò)的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05java使用udp實(shí)現(xiàn)簡(jiǎn)單多人聊天功能
這篇文章主要為大家詳細(xì)介紹了java使用udp實(shí)現(xiàn)簡(jiǎn)單多人聊天功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02mybatis查詢數(shù)據(jù)賦值到model里面為空的解決
這篇文章主要介紹了mybatis查詢數(shù)據(jù)賦值到model里面為空的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01由淺到深帶你詳談Java實(shí)現(xiàn)數(shù)組擴(kuò)容的三種方式
這篇文章主要詳細(xì)介紹了Java實(shí)現(xiàn)數(shù)組擴(kuò)容的三種方式,新建一個(gè)數(shù)組,把原來(lái)數(shù)組的內(nèi)容搬到新數(shù)組中,使用system.arraycopy(),使用java.util.Arrays.copyOf()這三種方式,具有一定的參考價(jià)值,需要的朋友可以借鑒一下2023-06-06Spring中@PropertySource的使用方法和運(yùn)行原理詳解
這篇文章主要介紹了Spring中@PropertySource的使用方法和運(yùn)行原理詳解,PropertySource注解可以方便和靈活的向Spring的環(huán)境容器(org.springframework.core.env.Environment?Environment)中注入一些屬性,這些屬性可以在Bean中使用,需要的朋友可以參考下2023-11-11