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

spring.profiles使用的方法步驟

 更新時(shí)間:2023年07月21日 09:13:37   作者:wh柒八九  
本文主要介紹了spring.profiles使用與spring.profiles.active和spring.profiles.include區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

本文來(lái)說(shuō)下spring.profiles.active和spring.profiles.include的使用與區(qū)別

業(yè)務(wù)場(chǎng)景

我們?cè)陂_(kāi)發(fā)Spring Boot應(yīng)用時(shí),通常同一套程序會(huì)被應(yīng)用和安裝到幾個(gè)不同的環(huán)境,比如:開(kāi)發(fā)、測(cè)試、生產(chǎn)等。其中每個(gè)環(huán)境的數(shù)據(jù)庫(kù)地址、服務(wù)器端口等等配置都會(huì)不同,如果在為不同環(huán)境打包時(shí)都要頻繁修改配置文件的話,那必將是個(gè)非常繁瑣且容易發(fā)生錯(cuò)誤的事。

對(duì)于多環(huán)境的配置,各種項(xiàng)目構(gòu)建工具或是框架的基本思路是一致的,通過(guò)配置多份不同環(huán)境的配置文件,再通過(guò)打包命令指定需要打包的內(nèi)容之后進(jìn)行區(qū)分打包,Spring Boot也不例外,或者說(shuō)更加簡(jiǎn)單。

spring.profiles.active屬性

一個(gè)好方法就是創(chuàng)建不同的配置文件,且命名規(guī)則遵循application-${profile}.yml,例如:

  • 開(kāi)發(fā)環(huán)境配置文件:application-dev.yml
  • 測(cè)試環(huán)境配置文件:application-test.yml
  • 生產(chǎn)環(huán)境配置文件:application-prod.yml

當(dāng)然,我們不能刪除項(xiàng)目最頂層的application.yml配置,在該文件中,根據(jù)部署場(chǎng)景不同,切換不同的配置文件:配置spring.profiles.active,屬性值為${profile}。

spring.profiles.active=dev:?jiǎn)⒂胊pplication-dev.yml
spring.profiles.active=test:?jiǎn)⒂胊pplication-test.yml
spring.profiles.active=prod:?jiǎn)⒂胊pplication-prod.yml

啟動(dòng)時(shí)指定

在執(zhí)行有參啟動(dòng)時(shí),可以在命令中進(jìn)行指定要選用的配置文件,例如:java -jar xx.jar --spring.profiles.active=test

這個(gè)命令的優(yōu)先級(jí)是最高的,即使application.yml中已經(jīng)配置spring.profiles.active=dev,最終程序還是會(huì)用application-test.yml配置文件。

spring.profiles.include屬性

再進(jìn)一步,對(duì)于開(kāi)發(fā)環(huán)境,想用不同的配置文件存儲(chǔ)開(kāi)發(fā)環(huán)境不同的配置,例如:

  • application-dev1.yml中存儲(chǔ)jdbc信息
  • application-dev2.yml中存儲(chǔ)ip、端口信息

即在啟用application-dev.yml開(kāi)發(fā)環(huán)境(主)配置文件時(shí),同時(shí)啟用application-dev1.yml和application-dev2.yml。

那么,可以使用spring.profiles.include屬性:同時(shí)啟用其他的profile

配置方法

若是properties文件:spring.profiles.include=dev1,dev2

若是yaml文件中,spring.profiles.include:
-dev1
-dev2
或者:spring.profiles.include:dev1,dev2

配置位置

  • 配置方式一:application.properties中,配置spring.profiles.active=dev的同時(shí)指定spring.profiles.include=dev1,dev2
  • 配置方式二:application.properties中,配置spring.profiles.active=dev,application-dev.properties中,配置spring.profiles.include=dev1,dev2。使用application-dev.properties時(shí)自動(dòng)就激活了dev1、dev2兩個(gè)文件,不用再次指定。(個(gè)人認(rèn)為第二種方法更好)

配置區(qū)別

  • 第一種方式啟動(dòng)時(shí),控制臺(tái)打印The following profiles are active:dev1,dev2,dev
  • 第二種方式啟動(dòng)時(shí),控制臺(tái)打印The following profiles are active:dev, dev1,dev2

按照順序,后面的覆蓋前面的

用示例來(lái)使用和區(qū)分

application.yml配置:

server:
  port: 8088
#激活的是開(kāi)發(fā)環(huán)境配置文件
spring:
    profiles:
       active: dev

application-dev.yml配置:

server:
  port: 8089
#同時(shí)觸發(fā)dev1和dev2的激活
spring:
  profiles:
    include: dev1,dev2

application-dev1.yml配置:

server:
  port: 8090

application-dev2.yml配置:

server:
  port: 8091

application-prod.yml配置:

server:
  port: 9088
#同時(shí)觸發(fā)prod1和prod2的激活
spring:
  profiles:
    include: prod1,prod2

application-prod1.yml配置:

server:
  port: 9089

application-prod2.yml配置:

server:
  port: 9090

測(cè)試一

在application.yml配置文件中,指定

#激活的是開(kāi)發(fā)環(huán)境配置文件
spring:
    profiles:
       active: dev

啟動(dòng)時(shí)不指定參數(shù)

啟動(dòng)dev2中的8091端口

測(cè)試二

在測(cè)試一的基礎(chǔ)上,啟動(dòng)時(shí)指定參數(shù):–spring.profiles.active=prod。優(yōu)先級(jí)最高,會(huì)使用生產(chǎn)環(huán)境配置文件

啟動(dòng)結(jié)果

測(cè)試三

在application.yml配置文件中,指定

#激活的是開(kāi)發(fā)環(huán)境配置文件
spring:
    profiles:
       active: dev
       include: dev1,dev2

啟動(dòng)結(jié)果

編寫程序查看激活的yml文件

編寫程序查看激活的yml文件

package com.wideth;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
@Slf4j
@SpringBootApplication
public class AppApplication {
    public static void main(String[] args) {
        try {
            ApplicationContext ctx = SpringApplication.run
            (AppApplication.class, args);
            String[] activeProfiles = ctx.getEnvironment().
            getActiveProfiles();
            for (String profile : activeProfiles) {
                log.warn("Spring Boot 使用profile為:{}" , profile);
            }
        } catch (Exception e) {
            log.error("啟動(dòng)失?。?,e);
        }
    }
}

程序結(jié)果

本文小結(jié)

到此這篇關(guān)于spring.profiles使用的方法步驟的文章就介紹到這了,更多相關(guān)spring.profiles使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于SpringBoot實(shí)現(xiàn)自動(dòng)裝配返回屬性的設(shè)計(jì)思路

    基于SpringBoot實(shí)現(xiàn)自動(dòng)裝配返回屬性的設(shè)計(jì)思路

    這篇文章主要介紹了基于SpringBoot實(shí)現(xiàn)自動(dòng)裝配返回屬性,這里涉及到的技術(shù)知識(shí)點(diǎn)有注解解析器,為什么用ResponseBodyAdvice這里解析?不在Filter,Interceptors,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2022-03-03
  • 在navicat中導(dǎo)入mysql數(shù)據(jù)庫(kù)詳細(xì)步驟(即.sql后綴的數(shù)據(jù)庫(kù))

    在navicat中導(dǎo)入mysql數(shù)據(jù)庫(kù)詳細(xì)步驟(即.sql后綴的數(shù)據(jù)庫(kù))

    Navicat是MySQL非常好用的可視化管理工具,功能非常強(qiáng)大,能滿足我們?nèi)粘?shù)據(jù)庫(kù)開(kāi)發(fā)的所有需求,下面這篇文章主要給大家介紹了關(guān)于如何在navicat中導(dǎo)入mysql數(shù)據(jù)庫(kù)(即.sql后綴的數(shù)據(jù)庫(kù))的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • MyBatisPlus項(xiàng)目的創(chuàng)建和使用

    MyBatisPlus項(xiàng)目的創(chuàng)建和使用

    本文介紹了MyBatis-Plus的基本使用方法,包括項(xiàng)目的創(chuàng)建和配置、增刪查改操作、日志打印以及條件構(gòu)造器的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • jmeter下載及安裝配置教程(win10平臺(tái)為例)

    jmeter下載及安裝配置教程(win10平臺(tái)為例)

    Apache?JMeter是Apache組織開(kāi)發(fā)的基于Java的壓力測(cè)試工具,Apache?jmeter?可以用于對(duì)靜態(tài)的和動(dòng)態(tài)的資源(文件,Servlet,Perl腳本,java?對(duì)象,數(shù)據(jù)庫(kù)和查詢,F(xiàn)TP服務(wù)器等等)的性能進(jìn)行測(cè)試,本文給大家介紹jmeter下載及安裝配置過(guò)程,感興趣的朋友一起看看吧
    2021-12-12
  • SpringCloud配置客戶端ConfigClient接入服務(wù)端

    SpringCloud配置客戶端ConfigClient接入服務(wù)端

    這篇文章主要為大家介紹了SpringCloud配置客戶端ConfigClient接入服務(wù)端,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Springboot中Instant時(shí)間傳參及序列化詳解

    Springboot中Instant時(shí)間傳參及序列化詳解

    這篇文章主要介紹了Springboot中Instant時(shí)間傳參及序列化詳解,Instant是Java8引入的一個(gè)精度極高的時(shí)間類型,可以精確到納秒,但實(shí)際使用的時(shí)候不需要這么高的精確度,通常到毫秒就可以了,需要的朋友可以參考下
    2023-11-11
  • zookeeper的watch機(jī)制原理解析

    zookeeper的watch機(jī)制原理解析

    Watcher,異步通知客戶端,并且刪除哈希表中對(duì)應(yīng)的 Key-Value,這篇文章主要介紹了zookeeper的watch機(jī)制詳細(xì)講解,需要的朋友可以參考下
    2022-06-06
  • Spring Boot中使用JSR-303實(shí)現(xiàn)請(qǐng)求參數(shù)校驗(yàn)

    Spring Boot中使用JSR-303實(shí)現(xiàn)請(qǐng)求參數(shù)校驗(yàn)

    這篇文章主要介紹了Spring Boot中使用JSR-303實(shí)現(xiàn)請(qǐng)求參數(shù)校驗(yàn),JSR-303校驗(yàn)我們一般都是對(duì)Java的實(shí)體類對(duì)象進(jìn)行校驗(yàn),主要檢驗(yàn)JSR-303是Java中的一個(gè)規(guī)范,用于實(shí)現(xiàn)請(qǐng)求參數(shù)校驗(yàn)在我們的實(shí)體類對(duì)象的屬性上,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • Java中如何利用Set判斷List集合中是否有重復(fù)元素

    Java中如何利用Set判斷List集合中是否有重復(fù)元素

    在開(kāi)發(fā)工作中,我們有時(shí)需要去判斷List集合中是否含有重復(fù)的元素,這時(shí)候我們不需要找出重復(fù)的元素,我們只需要返回一個(gè)?Boolean?類型就可以了,下面通過(guò)本文給大家介紹Java中利用Set判斷List集合中是否有重復(fù)元素,需要的朋友可以參考下
    2023-05-05
  • 詳解Spring-Cloud2.0之Feign調(diào)用遠(yuǎn)程服務(wù)指南

    詳解Spring-Cloud2.0之Feign調(diào)用遠(yuǎn)程服務(wù)指南

    這篇文章主要介紹了詳解Spring-Cloud2.0之Feign調(diào)用遠(yuǎn)程服務(wù)指南,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01

最新評(píng)論