当前位置: 代码网 > it编程>编程语言>Java > SpringBoot 多环境打包最佳实践记录

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

2024年11月28日 Java 我要评论
prespringboot - spring boot 中的配置体系profile全面解读概述实际开发中,应用程序通常需要部署到不同的运行环境中,例如 开发环境、测试环境、生产环境等。不同的环境可能需

pre

springboot - spring boot 中的配置体系profile全面解读

概述

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

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

spring boot 中实现多环境打包

1. 配置多环境文件

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

  • application-dev.yml(开发环境)
  • application-test.yml(测试环境)
  • application-prod.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

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

  • 检查启动日志中的 active profiles
  • 访问应用程序中不同的环境变量接口(如数据库连接)并验证返回的结果。

小结

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

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

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com