欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot?多環(huán)境打包最佳實(shí)踐記錄

 更新時(shí)間:2024年11月27日 11:42:47   作者:小小工匠  
SpringBoot通過(guò)配置多環(huán)境文件和在打包時(shí)指定激活的環(huán)境,實(shí)現(xiàn)多環(huán)境打包與部署,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

Pre

SpringBoot - Spring Boot 中的配置體系Profile全面解讀

概述

實(shí)際開(kāi)發(fā)中,應(yīng)用程序通常需要部署到不同的運(yùn)行環(huán)境中,例如 開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、生產(chǎn)環(huán)境等。不同的環(huán)境可能需要不同的環(huán)境配置,針對(duì)這種情況,通常需要對(duì)項(xiàng)目進(jìn)行多環(huán)境配置。

在Spring Boot項(xiàng)目中,實(shí)現(xiàn)多環(huán)境打包主要通過(guò)配置不同的環(huán)境文件,并在打包或啟動(dòng)時(shí)指定需要的環(huán)境參數(shù)。

Spring Boot 中實(shí)現(xiàn)多環(huán)境打包

1. 配置多環(huán)境文件

Spring Boot默認(rèn)加載的配置文件是 application.propertiesapplication.yml。為了支持不同環(huán)境的配置,我們可以創(chuàng)建多個(gè)配置文件,如:

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

在這些配置文件中,可以分別定義適用于每個(gè)環(huán)境的數(shù)據(jù)庫(kù)、緩存等參數(shù)。

application-dev.yml):

server:
  port: 8081
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/dev_db
    username: dev_user
    password: dev_password

application-prod.yml):

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/prod_db
    username: prod_user
    password: prod_password

2. 配置激活的環(huán)境

application.yml 中設(shè)置默認(rèn)激活的環(huán)境:

spring:
  profiles:
    active: dev

這樣在開(kāi)發(fā)環(huán)境下運(yùn)行時(shí),Spring Boot會(huì)默認(rèn)加載 application-dev.yml 的配置。

3. 通過(guò)命令行參數(shù)指定環(huán)境

在項(xiàng)目打包成 JAR 文件后,可以通過(guò)命令行參數(shù) --spring.profiles.active 指定環(huán)境。例如:

java -jar your-application.jar --spring.profiles.active=prod

將會(huì)加載 application-prod.yml 中的配置。

4. 在 Maven 中配置多環(huán)境打包

當(dāng)然了,我們也可以在構(gòu)建工具中配置多環(huán)境打包,方便在不同環(huán)境中自動(dòng)指定激活的配置文件。

pom.xml 中配置多環(huán)境 profile

<profiles>
        <!-- 開(kāi)發(fā)環(huán)境 -->
        <profile>
            <id>dev</id>
            <properties>
                <package.environment>dev</package.environment>
            </properties>
            <activation>
                <!-- 默認(rèn)激活這個(gè)配置 -->
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <!--測(cè)試環(huán)境-->
        <profile>
            <id>test</id>
            <properties>
                <package.environment>test</package.environment>
            </properties>
        </profile>
        <!--生產(chǎn)環(huán)境-->
        <profile>
            <id>prod</id>
            <properties>
                <package.environment>prod</package.environment>
            </properties>
        </profile>
    </profiles>

<profiles>標(biāo)簽下為每個(gè)環(huán)境定義一個(gè),并設(shè)置<id><properties>來(lái)指定環(huán)境標(biāo)識(shí)和激活條件

添加 resource

添加<resource>標(biāo)簽,并設(shè)置<filtering>為true,以便Maven可以替換其中的變量。在<includes>中指定要包含的公共配置文件和特定環(huán)境的配置文件。

  <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>application.yml</include>
                    <!--suppress UnresolvedMavenProperty -->
                    <include>application-${package.environment}.yml</include>
<!--                    <include>**/*.xml</include>-->
                </includes>
            </resource>
        </resources>
    </build> 

這里的${package.environment}是一個(gè)變量,它將在打包時(shí)被替換為具體的環(huán)境標(biāo)識(shí)(如dev、test、pre,prod等)

5. 命令打包

# 開(kāi)發(fā)環(huán)境
mvn clean package -P dev
# 測(cè)試環(huán)境
mvn clean package -P test 
# 生產(chǎn)環(huán)境
mvn clean package -P prod

觸發(fā)Maven的打包流程,并根據(jù)指定的profile(如dev、test、prod)來(lái)包含相應(yīng)的配置文件

6. 檢查多環(huán)境打包的效果

假設(shè)我們打一個(gè)

# 生產(chǎn)環(huán)境
mvn clean package -P prod

使用以下方式檢查是否成功加載了指定的環(huán)境配置:

  • 檢查啟動(dòng)日志中的 Active profiles
  • 訪問(wèn)應(yīng)用程序中不同的環(huán)境變量接口(如數(shù)據(jù)庫(kù)連接)并驗(yàn)證返回的結(jié)果。

小結(jié)

通過(guò)多環(huán)境配置文件與打包時(shí)指定的 spring.profiles.active,可以實(shí)現(xiàn)Spring Boot項(xiàng)目的多環(huán)境打包與部署,確保在開(kāi)發(fā)、測(cè)試和生產(chǎn)環(huán)境中使用合適的配置。

到此這篇關(guān)于SpringBoot 多環(huán)境打包最佳實(shí)踐的文章就介紹到這了,更多相關(guān)SpringBoot 多環(huán)境打包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java thrift服務(wù)器和客戶(hù)端創(chuàng)建實(shí)例代碼

    Java thrift服務(wù)器和客戶(hù)端創(chuàng)建實(shí)例代碼

    Thrift是一個(gè)軟件框架,用來(lái)進(jìn)行可擴(kuò)展且跨語(yǔ)言的服務(wù)的開(kāi)發(fā)。接下來(lái)通過(guò)本文給大家介紹Java thrift服務(wù)器和客戶(hù)端創(chuàng)建實(shí)例代碼,需要的朋友參考下吧
    2017-04-04
  • Java多線程中Callable和Future的解讀

    Java多線程中Callable和Future的解讀

    這篇文章主要介紹了Java多線程中Callable和Future的解讀,Callable接口類(lèi)似于Runnable,從名字就可以看出來(lái)了,但是Runnable不會(huì)返回結(jié)果,并且無(wú)法拋出返回結(jié)果的異常,而Callable功能更強(qiáng)大一些,被線程執(zhí)行后,可以返回值,這個(gè)返回值可以被Future拿到,需要的朋友可以參考下
    2023-09-09
  • SpringBoot參數(shù)校驗(yàn)與國(guó)際化使用教程

    SpringBoot參數(shù)校驗(yàn)與國(guó)際化使用教程

    這篇文章主要給大家介紹了關(guān)于SpringBoot參數(shù)校驗(yàn)與國(guó)際化使用教程的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • java pdf加水印的方法

    java pdf加水印的方法

    這篇文章主要為大家詳細(xì)介紹了java pdf加水印的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Java 基礎(chǔ)之事務(wù)詳細(xì)介紹

    Java 基礎(chǔ)之事務(wù)詳細(xì)介紹

    這篇文章主要介紹了Java 基礎(chǔ)之事務(wù)詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Spring中@Autowired自動(dòng)注入map詳解

    Spring中@Autowired自動(dòng)注入map詳解

    這篇文章主要介紹了Spring中@Autowired自動(dòng)注入map詳解,  spring是支持基于接口實(shí)現(xiàn)類(lèi)的直接注入的,支持注入map,list等集合中,不用做其他的配置,直接注入,需要的朋友可以參考下
    2023-10-10
  • SpringBoot熱部署設(shè)置方法詳解

    SpringBoot熱部署設(shè)置方法詳解

    在實(shí)際開(kāi)發(fā)中,每次修改代碼就需要重啟項(xiàng)目,重新部署,對(duì)于一個(gè)后端開(kāi)發(fā)者來(lái)說(shuō),重啟確實(shí)很難受。在java開(kāi)發(fā)領(lǐng)域,熱部署一直是一個(gè)難以解決的問(wèn)題,目前java虛擬機(jī)只能實(shí)現(xiàn)方法體的熱部署,對(duì)于整個(gè)類(lèi)的結(jié)構(gòu)修改,仍然需要重啟項(xiàng)目
    2022-10-10
  • 詳解Java Spring AOP

    詳解Java Spring AOP

    這篇文章主要為大家介紹了Java Spring AOP,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • Mybatis結(jié)果集映射與生命周期詳細(xì)介紹

    Mybatis結(jié)果集映射與生命周期詳細(xì)介紹

    結(jié)果集映射指的是將數(shù)據(jù)表中的字段與實(shí)體類(lèi)中的屬性關(guān)聯(lián)起來(lái),這樣 MyBatis 就可以根據(jù)查詢(xún)到的數(shù)據(jù)來(lái)填充實(shí)體對(duì)象的屬性,幫助我們完成賦值操作
    2022-10-10
  • springMVC中@RequestParam和@RequestPart的區(qū)別

    springMVC中@RequestParam和@RequestPart的區(qū)別

    本文主要介紹了springMVC中@RequestParam和@RequestPart的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06

最新評(píng)論