java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot 多环境打包

SpringBoot 多环境打包最佳实践记录

作者:小小工匠

SpringBoot通过配置多环境文件和在打包时指定激活的环境,实现多环境打包与部署,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

Pre

SpringBoot - Spring Boot 中的配置体系Profile全面解读

概述

实际开发中,应用程序通常需要部署到不同的运行环境中,例如 开发环境、测试环境、生产环境等。不同的环境可能需要不同的环境配置,针对这种情况,通常需要对项目进行多环境配置。

在Spring Boot项目中,实现多环境打包主要通过配置不同的环境文件,并在打包或启动时指定需要的环境参数。

Spring Boot 中实现多环境打包

1. 配置多环境文件

Spring Boot默认加载的配置文件是 application.propertiesapplication.yml。为了支持不同环境的配置,我们可以创建多个配置文件,如:

在这些配置文件中,可以分别定义适用于每个环境的数据库、缓存等参数。

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. 配置激活的环境

application.yml 中设置默认激活的环境:

spring:
  profiles:
    active: dev

这样在开发环境下运行时,Spring Boot会默认加载 application-dev.yml 的配置。

3. 通过命令行参数指定环境

在项目打包成 JAR 文件后,可以通过命令行参数 --spring.profiles.active 指定环境。例如:

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

将会加载 application-prod.yml 中的配置。

4. 在 Maven 中配置多环境打包

当然了,我们也可以在构建工具中配置多环境打包,方便在不同环境中自动指定激活的配置文件。

pom.xml 中配置多环境 profile

<profiles>
        <!-- 开发环境 -->
        <profile>
            <id>dev</id>
            <properties>
                <package.environment>dev</package.environment>
            </properties>
            <activation>
                <!-- 默认激活这个配置 -->
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <!--测试环境-->
        <profile>
            <id>test</id>
            <properties>
                <package.environment>test</package.environment>
            </properties>
        </profile>
        <!--生产环境-->
        <profile>
            <id>prod</id>
            <properties>
                <package.environment>prod</package.environment>
            </properties>
        </profile>
    </profiles>

<profiles>标签下为每个环境定义一个,并设置<id><properties>来指定环境标识和激活条件

添加 resource

添加<resource>标签,并设置<filtering>为true,以便Maven可以替换其中的变量。在<includes>中指定要包含的公共配置文件和特定环境的配置文件。

  <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}是一个变量,它将在打包时被替换为具体的环境标识(如dev、test、pre,prod等)

5. 命令打包

# 开发环境
mvn clean package -P dev
# 测试环境
mvn clean package -P test 
# 生产环境
mvn clean package -P prod

触发Maven的打包流程,并根据指定的profile(如dev、test、prod)来包含相应的配置文件

6. 检查多环境打包的效果

假设我们打一个

# 生产环境
mvn clean package -P prod

使用以下方式检查是否成功加载了指定的环境配置:

小结

通过多环境配置文件与打包时指定的 spring.profiles.active,可以实现Spring Boot项目的多环境打包与部署,确保在开发、测试和生产环境中使用合适的配置。

到此这篇关于SpringBoot 多环境打包最佳实践的文章就介绍到这了,更多相关SpringBoot 多环境打包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文