SpringBoot 多环境启动配置

多环境配置

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

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

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

补充:常用的配置文件:

开发环境:application-dev.yml

测试环境:application-test.yml

生产环境:application-prod.yml

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

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

yaml 复制代码
spring:
    profiles:
        #active中的值为对应环境的标识
        active:dev

IDEA 中 启动配置修改

第一种方式

随后用 debug 方式启动项目

第二种方式

随后用 debug 方式启动项目


命令行启动

jar 包

指定环境,指定端口

css 复制代码
java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev --server.port=8888

war 包

修改 startup.bat 文件

vbnet 复制代码
@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依赖

xml 复制代码
  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

在application.yml文件中添加配置

yaml 复制代码
spring:
    devtools:
        restarts:
            enabled:true

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

相关推荐
IT_陈寒20 分钟前
Python的多线程就是个假把式,我算是体验到了
前端·人工智能·后端
码事漫谈20 分钟前
如果 AI 要圈养人类,它可能不需要笼子
后端
newerp1 小时前
Golang 调度循环:Go runtime 如何永不停歇地找人干活
后端·程序员·go
明月_清风1 小时前
AI 时代,为什么架构师又开始谈"本体论"?
人工智能·后端·agent
行百里er2 小时前
BeanPostProcessor:包装 Feign Client
spring boot·后端·监控
花生了什么事o2 小时前
自定义Spring Boot Starter全流程
java·spring boot·后端
云上小朱3 小时前
开发测试环境-Kubernetes离线部署指南
后端
遨翔在知识的海洋里3 小时前
nestjs(1)-模块的相互调用
后端