SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)

文档说明

  • 本文用到的项目讲解接我的上一篇文档,项目代码仓库地址点这里。

开发步骤

首先我们建立两个文件,分别为 application-dev.ymlapplication-prod.yml 分别代表开发环境和生产环境的配置:

# 开发环境的配置 application-dev.yml
server:
  port: 8080 # 设置端口号为 8080

# 生产环境的配置 application-prod.yml
server:
  port: 80 # 设置端口号为 80

在来在 application.yml 当中添加一行配置

spring:
  profiles:
    active: ${SPRING_PROFILES_ACTIVE}

${SPRING_PROFILES_ACTIVE} 的意思是读取名为 SPRING_PROFILES_ACTIVE 的环境变量

SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)_第1张图片

然后我们来配置一下计算机的环境变量

SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)_第2张图片

到idea当中查看环境变量

SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)_第3张图片

如果查看没有那么就到项目地址当中删除一下两个文件然后从新导入项目

SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)_第4张图片

接下来我们运行项目并查看运行日志,可以看到使用的是 dev 的环境,也就是使用的是 application-dev.yml 这个配置文件,端口号是8080

SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)_第5张图片

然后将该项目打成jar包,依照官方文档我们需要新增一个插件,以方便制作一个可运行的jar包

SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)_第6张图片

代码如下:

<build>
    <plugins>
        
        <plugin>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-maven-pluginartifactId>
        plugin>
    plugins>
build>

复制到 pom.xml 文件中

然后我们来到文件管理器中 pom.xml 所在的目录下运行一下命令以打包该项目(前提是配置好了maven的环境变量)

mvn package -Dmaven.test.skip

看到以下界面代表打包成功

SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)_第7张图片

我们也可以用idea工具进行打包

SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)_第8张图片

然后我们还是可以看到这个打包成功的提示

SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)_第9张图片

打包完成后可以在项目的 target 目录下找到该jar文件

SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)_第10张图片

然后我们来到Linux生产环境,其必须安装好 jdk 和 MySQL,可以参考我写的两篇文章 jdk1.8安装 和 MySQL5.7.32安装,然后配置Linux环境变量,使用 vim /etc/profile 命令,添加上一下配置

SPRING_PROFILES_ACTIVE=prod
export SPRING_PROFILES_ACTIVE

如图:

SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)_第11张图片

保存退出后我们将jar包拿到Linux当中来

SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)_第12张图片

使用 java -jar demo-user-1.0-SNAPSHOT.jar 运行它,可以看到环境是生产环境,也就是使用的 application-prod.yml 端口号也是80:

SpringBoot多环境的yml或properties配置,生产环境和开发环境分离(超详细)_第13张图片

时间不早了,下课,家庭作业:自行测试

(代码已经更新至git仓库)

精彩预告(更新预告)

  • 使用maven快速搭建SpringBoot的SSM项目
  • 根据环境选择不同的配置,如开发环境一套配置,测试环境一套生产环境又一套
  • 整合 RestControllerAdvice 做异常统一处理,坚决不把异常抛出给前端
  • 整合 Spring Validated 做数据校验
  • 整合 redis 做数据缓存
  • 整合 Spring Cloud 做微服务注册调用

你可能感兴趣的:(框架,java,spring,linux,maven)