SpringBoot中多环境启动配置的教程详解

 更新时间:2024年02月05日 11:26:42   作者:涛涛之海  
在SpringBoot项目的生命周期中,存在不同的环境,我们就需要针对不同环境制定不同名称的配置文件,里面放置不同环境下所需的配置项,下面小编就来和大家详细讲讲SpringBoot如何进行多环境启动配置的吧

多环境配置

在SpringBoot项目的生命周期中,存在不同的环境,例如开发时的环境,测试时的环境,交付使用后的生产环境,每种环境的配置可能不一样,这种情况下可以通过多环境配置实现不同环境的快速切换。

针对不同环境制定不同名称的配置文件,里面放置不同环境下所需的配置项,然后在主配置文件中选择其中一个配置文件作为当前使用的配置。

创建多个配置文件,每个配置文件的格式:application-{profile}.yml,其中{profile}是对应环境的标识

补充:常用的配置文件:

开发环境:application-dev.yml

测试环境:application-test.yml

生产环境:application-prod.yml

默认启动指定默认配置文件application.yml 。

修改application.yml文件,使用以下代码选择上述的一个环境(active为profile所进行的命名),来进行环境的切换。

spring:
    profiles:
        #active中的值为对应环境的标识
        active:dev

IDEA 中 启动配置修改

第一种方式

随后用 debug 方式启动项目

第二种方式

随后用 debug 方式启动项目

命令行启动

jar 包

指定环境,指定端口

java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev --server.port=8888

war 包

修改 startup.bat 文件

@echo off
rem /**
rem  * Copyright (c) 2013-Now http://jeesite.com All rights reserved.
rem  * No deletion without permission, or be held responsible to law.
rem  *
rem  * Author: ThinkGem@163.com
rem  */
echo.
echo [信息] 运行Web工程。
echo.
rem pause
rem echo.

%~d0
cd %~dp0

title %cd%

rem 设置JDK目录
rem set "JAVA_HOME=%cd%\jdk1.8.0_x64"

rem 设置类加载路径
set "CLASS_PATH=%cd%/../"

rem 优化JVM参数
set "JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx4g"

rem 方式一、配置外部自定义的属性文件(建议)
rem set "JAVA_OPTS=%JAVA_OPTS% -Dspring.config.location=%cd%\app.yml"

rem 方式二、配置环境名称,加载不同的属性文件
set "JAVA_OPTS=%JAVA_OPTS% -Dspring.profiles.active=prod"

if "%JAVA_HOME%" == "" goto noJavaHome
if not "%JAVA_HOME%" == "" goto gotJavaHome
goto end

:noJavaHome
set RUN_JAVA=java
goto runJava

:gotJavaHome
set "RUN_JAVA=%JAVA_HOME%\bin\java"
goto runJava

:runJava
call "%RUN_JAVA%" -cp %CLASS_PATH% %JAVA_OPTS% org.springframework.boot.loader.WarLauncher
goto end

:end
pause

热部署

在项目开发过程中,如果代码修改了,需要进行重新启动项目后修改才可以生效,但使用热部署则无须重新去手动启动应用程序。

在 pom.xml 文件中添加 devtools依赖

  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

在application.yml文件中添加配置

spring:
    devtools:
        restarts:
            enabled:true

在IDEA中进行自动构建项目的配置,选择File->Settings->Build,Execution,Deployment->Complier,然后勾选右侧部分的Build project automatically

以上就是SpringBoot中多环境启动配置的教程详解的详细内容,更多关于SpringBoot多环境启动配置的资料请关注脚本之家其它相关文章!

相关文章

  • mac系统启动spring项目报错的问题及解决方案

    mac系统启动spring项目报错的问题及解决方案

    这篇文章主要介绍了mac系统启动spring项目报错的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2026-03-03
  • JAVA抽象类及接口使用方法解析

    JAVA抽象类及接口使用方法解析

    这篇文章主要介绍了JAVA抽象类及接口使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • mybatis单元测试过程(无需启动容器)

    mybatis单元测试过程(无需启动容器)

    在MyBatis中,单元测试无需启动容器即可进行,主要涉及Configuration类、Executor接口及其实现类,以及XMLMapperBuilder的作用,Configuration类是配置的承载者,负责初始化并解析配置文件,Executor接口及其实现类
    2024-09-09
  • SpringBoot集成mybatis实例

    SpringBoot集成mybatis实例

    本篇文章主要介绍了SpringBoot集成mybatis实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • SpringBoot无法连接redis的解决方案

    SpringBoot无法连接redis的解决方案

    这篇文章主要介绍了SpringBoot无法连接redis的解决方案,文中通过代码示例给大家讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-08-08
  • Spring Boot 3 整合 RustFS 实现分布式文件存储的常见问题及解决方案

    Spring Boot 3 整合 RustFS 实现分布式文件存储的常

    本文详解SpringBoot3与RustFS分布式存储系统的整合方法,涵盖环境部署、配置、核心代码实现及高级功能扩展,最终构建高性能、可扩展的文件存储服务,强调其兼容S3协议、开源特性及成本优势,感兴趣的朋友跟随小编一起看看吧
    2025-09-09
  • Java 数据库连接池 DBCP 的介绍

    Java 数据库连接池 DBCP 的介绍

    这篇文章主要给大家分享的是 Java 数据库连接池 DBCP 的介绍, 是 Apache 旗下 Commons 项目下的一个子项目,提供连接池功能DBCP,下面来看看文章的具体介绍内容吧,需要的朋友可以参考一下
    2021-11-11
  • RocketMQ保证消息的有序性的案例分享

    RocketMQ保证消息的有序性的案例分享

    Apache RocketMQ 是一个常用的开源消息中间件,它提供了强大的有序消息处理能力,这里我们会探讨 RocketMQ 是如何保证消息的有序性的,包括其设计原理和相关的源码实现,需要的朋友可以参考下
    2024-04-04
  • java实现简单贪吃蛇小游戏

    java实现简单贪吃蛇小游戏

    这篇文章主要为大家详细介绍了java实现简单贪吃蛇小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • Knife4j文档请求异常问题及解决过程

    Knife4j文档请求异常问题及解决过程

    解决再学习黑马苍穹外卖项目Swagger时遇到的Knife4j请求异常问题,通过自检、检查SpringBoot版本兼容性、更改项目SpringBoot版本和启动项目等步骤,最终成功解决并访问到Swagger接口页面
    2026-05-05

最新评论