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

profiles.active多環(huán)境開發(fā)、測試、部署過程

 更新時(shí)間:2023年03月09日 11:51:49   作者:dovienson  
這篇文章主要介紹了profiles.active多環(huán)境開發(fā)、測試、部署,主要講如何使用profiles.active這個(gè)變量,讓我們在開發(fā)過程快速切換環(huán)境配置,以及如何使一個(gè)部署適配各種不同的環(huán)境,需要的朋友可以參考下

1、使用場景

在開始講profiles.active配置時(shí),我們先來考慮幾個(gè)場景。

我們在開發(fā)過程中,經(jīng)常會碰到多個(gè)環(huán)境,特別熟數(shù)據(jù)庫,經(jīng)常是有開發(fā)庫,測試庫,和生產(chǎn)庫。一般我們都是連的開發(fā)庫進(jìn)行開發(fā),但是有時(shí)候也會需要連接測試庫,甚至是生產(chǎn)庫進(jìn)行調(diào)試工作。我們通常的做法,可能就是直接修改配置文件的數(shù)據(jù)庫連接,需要連哪個(gè)庫就改成哪個(gè)庫的連接??墒怯行r(shí)候我們改來改去經(jīng)常出錯,或者不記得哪個(gè)環(huán)境的配置了,這時(shí)我們可能會想到一次把幾個(gè)環(huán)境的配置都寫進(jìn)來,把不需要的注釋掉,這確實(shí)是一種可行的辦法,但還有沒有更好的辦法呢?

再說部署時(shí)候的場景。一般我們打包里面包含的都是開發(fā)庫的配置文件,經(jīng)常部署的時(shí)候,需要手動修改部署包里面的配置文件,如果部署到測試環(huán)境,就修改成測試環(huán)境的數(shù)據(jù)庫,如果是生產(chǎn)環(huán)境,就修改成生產(chǎn)環(huán)境的數(shù)據(jù)庫。那么有沒有辦法讓一個(gè)部署包能同時(shí)適配各種不同的環(huán)境呢。

接下來我們要講的profiles.active就可以解決上面的需求。

2、profiles.active

profiles.active表示當(dāng)前激活的環(huán)境參數(shù),他可以是一個(gè)字符數(shù)組,但一般情況下,我們都是使用單個(gè)字符,例如dev,test,prod來標(biāo)識。這里我們還是以數(shù)據(jù)庫配置為例,假設(shè)我們原來的application.yml里面配置的數(shù)據(jù)源是本地?cái)?shù)據(jù)源,現(xiàn)在我們再來配置一個(gè)開發(fā)庫,以dev作為環(huán)境標(biāo)識。

我們將application.yml復(fù)制一份,命名為application-dev.yml,application-{profile-name}.yml,命名規(guī)則就是這樣的。然后我們把dev里面的數(shù)據(jù)庫名改成spring_boot_study_dev,其他不用的配置刪掉。

這就完成了我們開發(fā)環(huán)境的配置文件編寫。

接著,我們再來一份測試環(huán)境的配置。

這里,我們已經(jīng)完成了多個(gè)環(huán)境配置文件的編寫??梢钥吹剑煌h(huán)境的配置我們寫在不同的配置文件里面,相同的配置我們使用application.yml里面的配置,可以認(rèn)為是默認(rèn)配置。我們還差最后一步,使用profiles.active來激活我們當(dāng)前的需要使用的環(huán)境。

3、profiles.actvie使用

profiles.active配置的方式也有幾種,我們從最簡單的開始。我們可以在application.yml里面直接配置spring.profiles.active屬性。

這樣我們就指定了當(dāng)前的環(huán)境變量,現(xiàn)在我們來啟動程序。

我們可以看到日志里面打印了當(dāng)前profiles active 是dev,說明我們的配置生效了,其實(shí)我們后面還可以看到程序并沒有啟動完成,因?yàn)槲覀儾]有創(chuàng)建spring_boot_study_dev這個(gè)數(shù)據(jù)庫,這正好再一次證明我們的配置已經(jīng)生效。

其實(shí)在我們以前沒有配置profiles.active時(shí),默認(rèn)激活的是default。

現(xiàn)在我們可以通過修改spring.profiles.active屬性來快速的切換環(huán)境了。這里筆者要再次提醒一下大家,當(dāng)我們配置成dev的時(shí)候,我們的程序是會讀取application-dev.yml和application.yml兩個(gè)配置文件,spring會將兩個(gè)配置文件里面的配置進(jìn)行一個(gè)合并,如果兩個(gè)文件里面有相同的配置項(xiàng),將會以application-dev.yml里面的優(yōu)先級為高,即dev里面的配置將會覆蓋默認(rèn)的配置。

除了改配置文件,我們還可以在eclipse指定環(huán)境變量

通過配置環(huán)境變量,同樣能生效,并且,如果在環(huán)境變量和配置文件同時(shí)配置了的情況下,環(huán)境變量的優(yōu)先級會高于配置文件。

這兩種修改spring.profiles.active的方式是開發(fā)時(shí)常用的,但是他并不能解決我們部署時(shí)候的問題。

假設(shè)我們是使用jar包運(yùn)行,我們可以在執(zhí)行java -jar命令的時(shí)候增加-Dspring.profiles.active=test參數(shù)的方式指定環(huán)境。

這種配置方式,跟我們修改eclipse環(huán)境變量的原理是一樣的。這樣只要我們部署包里面包含了各個(gè)環(huán)境的配置,我們就可以一個(gè)部署包直接在多個(gè)環(huán)境使用,只需在啟動的時(shí)候指定環(huán)境名即可。

那如果是Tomcat部署的war包怎么處理呢。這里以linux版本為例,找到catalina.sh文件,修改JAVA_OPTS參數(shù),增加我們需要配置的環(huán)境變量,這樣只要這個(gè)Tomcat里面部署的應(yīng)用,spring.profiles.active值都是同一個(gè)值。

4、總結(jié)

這節(jié)主要講如何使用profiles.active這個(gè)變量,讓我們在開發(fā)過程快速切換環(huán)境配置,以及如何使一個(gè)部署適配各種不同的環(huán)境。如果我們的部署包可以不用修改配置文件,就直接運(yùn)行,這就為我們以后的自動部署,自動運(yùn)行掃清了路障。不過,有一點(diǎn)需要注意的是,我們將多個(gè)環(huán)境的配置都放到了部署包,會不會存在將其他環(huán)境的敏感配置項(xiàng)泄露給了其他人的情況。

到此這篇關(guān)于profiles.active多環(huán)境開發(fā)、測試、部署的文章就介紹到這了,更多相關(guān)profiles.active多環(huán)境開發(fā)部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java單例模式和多例模式實(shí)例分析

    Java單例模式和多例模式實(shí)例分析

    這篇文章主要介紹了Java單例模式和多例模式,結(jié)合實(shí)例形式分析了java單例模式與多例模式的定義及使用技巧,需要的朋友可以參考下
    2019-07-07
  • 一篇文章總結(jié)Java虛擬機(jī)內(nèi)存區(qū)域模型

    一篇文章總結(jié)Java虛擬機(jī)內(nèi)存區(qū)域模型

    這篇文章主要介紹了一篇文章總結(jié)Java虛擬機(jī)內(nèi)存區(qū)域模型,本篇文章主要來總結(jié)一下Java虛擬機(jī)內(nèi)存的各個(gè)區(qū)域,以及這些區(qū)域的作用、服務(wù)對象以及其中可能產(chǎn)生的問題,作為大家的面試寶典。,需要的朋友可以參考下
    2019-06-06
  • 解決子線程無法訪問父線程中通過ThreadLocal設(shè)置的變量問題

    解決子線程無法訪問父線程中通過ThreadLocal設(shè)置的變量問題

    這篇文章主要介紹了解決子線程無法訪問父線程中通過ThreadLocal設(shè)置的變量問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Java虛擬機(jī)內(nèi)存區(qū)域劃分詳解

    Java虛擬機(jī)內(nèi)存區(qū)域劃分詳解

    這篇文章主要介紹了Java虛擬機(jī)內(nèi)存區(qū)域劃分,本文邏輯清晰,可以幫助我們更好的掌握虛擬機(jī),對我們學(xué)習(xí)java來說是一種幫助,需要的朋友可以參考下
    2021-04-04
  • 快速理解spring中的各種注解

    快速理解spring中的各種注解

    這篇文章主要介紹了快速理解spring中的各種注解,具有一定借鑒價(jià)值,需要的朋友可以了解下。
    2017-12-12
  • 詳解poi+springmvc+springjdbc導(dǎo)入導(dǎo)出excel實(shí)例

    詳解poi+springmvc+springjdbc導(dǎo)入導(dǎo)出excel實(shí)例

    本篇文章主要介紹了poi+springmvc+springjdbc導(dǎo)入導(dǎo)出excel實(shí)例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2017-01-01
  • java如何根據(jù)日期生成單號

    java如何根據(jù)日期生成單號

    這篇文章主要介紹了java如何根據(jù)日期生成單號問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • 詳解Java 集合類 List 的那些坑

    詳解Java 集合類 List 的那些坑

    這篇文章主要介紹了Java 集合類 List 的那些坑,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • SpringBoot調(diào)用對方webService接口的幾種方法示例

    SpringBoot調(diào)用對方webService接口的幾種方法示例

    平常我們開發(fā)調(diào)用接口一般會用到幾種數(shù)據(jù)格式,比如有restful的,這個(gè)是目前最流行的,也是最簡單開發(fā)的,還有一種就是webservice數(shù)據(jù)格式,本文給大家介紹了幾種SpringBoot調(diào)用對方webService接口的方法,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2023-11-11
  • Java中的Random和ThreadLocalRandom詳細(xì)解析

    Java中的Random和ThreadLocalRandom詳細(xì)解析

    這篇文章主要介紹了Java中的Random和ThreadLocalRandom詳細(xì)解析,Random 類用于生成偽隨機(jī)數(shù)的流, 該類使用48位種子,其使用線性同余公式進(jìn)行修改,需要的朋友可以參考下
    2024-01-01

最新評論