多环境配置
在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