最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot多環(huán)境打包與配置文件排除實踐記錄

 更新時間:2024年11月27日 11:37:54   作者:https://blog.csdn.net/yangshangwei/article/details/143924118  
本文介紹了SpringBoot項目多環(huán)境打包與配置文件排除實踐,包括多環(huán)境配置的實現(xiàn)方法、打包時排除配置文件的方法以及動態(tài)加載外部配置文件的最佳實踐,感興趣的朋友跟隨小編一起看看吧

推薦閱讀:

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

Spring Boot 項目多環(huán)境打包與配置文件排除實踐

在實際開發(fā)中,Spring Boot 項目通常需要適配不同的運行環(huán)境,例如開發(fā)環(huán)境、測試環(huán)境、生產環(huán)境等。這些環(huán)境下的配置可能包含敏感信息,例如數(shù)據(jù)庫連接密碼、API密鑰等。因此,在項目打包時,我們不僅需要支持多環(huán)境配置,還要考慮如何排除敏感配置文件,以保證安全性。

多環(huán)境配置的實現(xiàn)方法打包時排除配置文件的方法動態(tài)加載外部配置文件的最佳實踐

一、多環(huán)境配置的實現(xiàn)方法

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

Spring Boot 默認加載 application.propertiesapplication.yml 配置文件。為了支持多環(huán)境配置,可以通過文件命名的方式區(qū)分環(huán)境,比如:

  • application-dev.yml:開發(fā)環(huán)境配置
  • application-test.yml:測試環(huán)境配置
  • application-prod.yml:生產環(huán)境配置

各環(huán)境配置文件可以定義不同的參數(shù)。例如,以下是開發(fā)和生產環(huán)境的數(shù)據(jù)庫配置:

開發(fā)環(huán)境:application-dev.yml

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

生產環(huán)境:application-prod.yml

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

2. 動態(tài)切換環(huán)境

application.yml 中配置默認激活的環(huán)境:

spring:
  profiles:
    active: dev

通過命令行參數(shù)啟動時動態(tài)指定環(huán)境:

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

二、打包時排除配置文件的方法

在某些情況下,敏感的配置文件(如 application-prod.yml)可能包含生產環(huán)境的重要信息。我們希望這些文件在打包時被排除,而不是直接包含在最終的 JAR 包中。

1. 使用 Maven 排除配置文件

方法 1:通過 maven-resources-plugin

在 Maven 的 pom.xml 中,通過 maven-resources-plugin 在資源打包階段排除文件:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <excludes>
                <exclude>application-prod.yml</exclude>
                <!-- 排查所有目錄下的所有配置文件 <exclude>**/*.*</exclude> -->
            </excludes>
        </resource>
    </resources>
</build>

方法 2:通過 maven-assembly-plugin

使用 maven-assembly-plugin 自定義打包配置:

添加插件配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.3.0</version>
            <configuration>
                <descriptors>
                    <descriptor>src/main/assembly/assembly.xml</descriptor>
                </descriptors>
            </configuration>
        </plugin>
    </plugins>
</build>

創(chuàng)建 assembly.xml 文件:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3">
    <id>jar-with-dependencies</id>
    <formats>
        <format>jar</format>
    </formats>
    <fileSets>
        <fileSet>
            <directory>${project.basedir}/src/main/resources</directory>
            <excludes>
                <exclude>application-prod.yml</exclude>
            </excludes>
        </fileSet>
    </fileSets>
</assembly>

執(zhí)行構建命令:

mvn clean package

2. 使用 Gradle 排除配置文件

在 Gradle 的 build.gradle 文件中,可以通過 processResources 任務排除文件:

tasks.processResources {
    exclude 'application-prod.yml'
}

構建時運行:

./gradlew clean build

三、動態(tài)加載外部配置文件

為了進一步提高安全性,我們可以將敏感配置文件存儲在外部,并通過動態(tài)加載的方式使用這些文件。

1. 存放外部配置文件

將敏感的配置文件(如 application-prod.yml)存放在服務器的安全路徑,例如 /etc/app-config/。

2. 啟動時指定外部配置路徑

通過啟動參數(shù) --spring.config.location 指定外部配置文件的路徑:

java -jar your-application.jar --spring.config.location=/etc/app-config/application-prod.yml

3. 配置環(huán)境變量

將配置路徑指定為環(huán)境變量,啟動時自動加載:

export SPRING_CONFIG_LOCATION=/etc/app-config/
java -jar your-application.jar

4. 在配置文件中指定額外路徑

在主配置文件中,使用 spring.config.additional-location 指定額外的加載路徑:

spring:
  config:
    additional-location: file:/etc/app-config/application-prod.yml

四、總結

多環(huán)境配置

  • 為不同的環(huán)境創(chuàng)建獨立的配置文件(application-dev.yml、application-prod.yml)。
  • 使用 spring.profiles.active 動態(tài)切換環(huán)境。

配置文件排除

  • Maven:通過 maven-resources-pluginmaven-assembly-plugin 排除敏感文件。
  • Gradle:通過 processResources 配置排除文件。

動態(tài)加載外部配置

  • 將敏感文件存儲在外部路徑,通過啟動參數(shù)、環(huán)境變量或額外路徑加載。

推薦實踐

  • 敏感信息外部化:避免將敏感信息打包到 JAR 中。
  • 版本控制:將環(huán)境無關的公共配置納入版本管理,但排除敏感文件。
  • 環(huán)境隔離:通過 CI/CD 流程在不同環(huán)境中自動部署相應的配置。

到此這篇關于SpringBoot - 多環(huán)境打包與配置文件排除實踐的文章就介紹到這了,更多相關SpringBoot 多環(huán)境打包內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Springboot使用Redis實現(xiàn)定時任務的三種方式

    Springboot使用Redis實現(xiàn)定時任務的三種方式

    本文介紹了三種Redis定時任務實現(xiàn)方式,鍵空間通知,有序集合輪詢,分布式鎖,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-06-06
  • Mybatis-Plus實現(xiàn)只更新部分字段的數(shù)據(jù)

    Mybatis-Plus實現(xiàn)只更新部分字段的數(shù)據(jù)

    這篇文章主要介紹了Mybatis-Plus實現(xiàn)只更新部分字段的數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 一文徹底吃透SpringMVC中的轉發(fā)和重定向

    一文徹底吃透SpringMVC中的轉發(fā)和重定向

    大家應該都知道springmvc本來就會把返回的字符串作為視圖名解析,然后轉發(fā)到對應的視圖,這篇文章主要給大家介紹了關于SpringMVC中轉發(fā)和重定向的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • Java 在PDF中添加騎縫章示例解析

    Java 在PDF中添加騎縫章示例解析

    這篇文章主要介紹了Java 在PDF中添加騎縫章示例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • 基于Spring-AOP實現(xiàn)自定義分片工具詳解

    基于Spring-AOP實現(xiàn)自定義分片工具詳解

    隨著數(shù)據(jù)量的增長,在與其他系統(tǒng)交互時,批量接口會出現(xiàn)超時現(xiàn)象,發(fā)現(xiàn)原批量接口在實現(xiàn)時,沒有做分片處理。由于與其他系統(tǒng)交互比較多,一個一個接口去做分片優(yōu)化,改動量較大,所以考慮通過AOP解決此問題,感興趣的可以了解一下
    2022-11-11
  • SpringBoot 創(chuàng)建對象常見的幾種方式小結

    SpringBoot 創(chuàng)建對象常見的幾種方式小結

    Spring Boot中創(chuàng)建對象的幾種常見方式包括使用@Component、@Service、@Repository或@Controller注解,本文就來詳細的介紹一下,感興趣的可以了解一下
    2024-11-11
  • Java實現(xiàn)一個簡單計算器

    Java實現(xiàn)一個簡單計算器

    這篇文章主要介紹了Java實現(xiàn)一個簡單計算器,文章我圍繞實現(xiàn)簡單計算器的相關代碼展現(xiàn)全文,具有一定的參考價值,需要的小伙伴可以參考一下,
    2022-01-01
  • java中比較2個Date是不是同一天的五種實現(xiàn)方法與對比

    java中比較2個Date是不是同一天的五種實現(xiàn)方法與對比

    這篇文章主要為大家詳細介紹了java中比較2個Date是不是同一天的五種實現(xiàn)方法,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以了解一下
    2026-01-01
  • SpringBoot實現(xiàn)Excel文件批量上傳導入數(shù)據(jù)庫

    SpringBoot實現(xiàn)Excel文件批量上傳導入數(shù)據(jù)庫

    這篇文章主要為大家詳細介紹了SpringBoot實現(xiàn)Excel文件批量上傳導入數(shù)據(jù)庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • SpringBoot配置Apollo代碼實例

    SpringBoot配置Apollo代碼實例

    這篇文章主要介紹了SpringBoot配置Apollo代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10

最新評論

济宁市| 威海市| 安多县| 苗栗县| 凤翔县| 天水市| 原平市| 长岭县| 汉中市| 南投市| 临清市| 宁远县| 苏尼特右旗| 西乌珠穆沁旗| 田东县| 巧家县| 内黄县| 广汉市| 乐陵市| 邢台市| 中牟县| 威宁| 河源市| 江阴市| 苍梧县| 肇州县| 昭觉县| 昌平区| 修武县| 莱西市| 靖西县| 宜城市| 阳泉市| 丰都县| 宣威市| 边坝县| 元谋县| 武功县| 会理县| 永康市| 舞阳县|