SpringBoot 运维实用篇


文章目录

  • SpringBoot
  • SpringBoot 运维实用篇
  • 3 多环境开发
  • 3.5 多环境开发控制
  • 3.5.1 问题引入
  • 3.5.2 多环境开发控制
  • 3.5.3 一个小问题
  • 3.5.4 小结
  • 3.5.5 总结


3 多环境开发

3.5 多环境开发控制
3.5.1 问题引入

在很多地方,只要用到构建工具,它都会有多环境的控制

比如说Maven 和 SpringBoot

springboot3 需要gradle什么版本 springboot2.3.5_java

问题来了【如果我在Maven 中设置了为生产环境,SpringBoot 中设置了开发环境】

谁生效?【冲突了咋办】

搞清楚:SpringBoot 是依赖于Maven 来运行的,没有Maven ,SpringBoot 就没法儿玩儿了

springboot3 需要gradle什么版本 springboot2.3.5_多环境_02

所以,一定是以Maven的配置为主

3.5.2 多环境开发控制

先clean 一下

springboot3 需要gradle什么版本 springboot2.3.5_配置文件_03

创建一个pro 的配置文件

springboot3 需要gradle什么版本 springboot2.3.5_配置文件_04

什么都不写

现在看个情况,启动服务器

springboot3 需要gradle什么版本 springboot2.3.5_java_05

现在启动的dev 分组

现在直接换成pro 分组,重启

springboot3 需要gradle什么版本 springboot2.3.5_运维_06

【在pom文件中设置多环境开发】

<!--  设置多环境  -->
<profiles>
    <profile>
        <id>env_dev</id>
        <properties>
            <profile.active>dev</profile.active>
        </properties>
    </profile>
    <profile>
        <id>env_pro</id>
        <properties>
            <profile.active>pro</profile.active>
        </properties>
    </profile>
</profiles>

springboot3 需要gradle什么版本 springboot2.3.5_spring boot_07

相当于我在pom 中设置了一个变量,后面的yml 配置根据我这个变量值来决定加载那个环境组

springboot3 需要gradle什么版本 springboot2.3.5_spring boot_08

在yml 中读取那个值

springboot3 需要gradle什么版本 springboot2.3.5_spring boot_09

OK,现在我们直接打包

springboot3 需要gradle什么版本 springboot2.3.5_配置文件_10

打开这个生成的 jar

springboot3 需要gradle什么版本 springboot2.3.5_java_11

看看这里面写的什么【应该是dev 】

springboot3 需要gradle什么版本 springboot2.3.5_配置文件_12

OK,没毛病

现在更改Maven 配置的启动默认

springboot3 需要gradle什么版本 springboot2.3.5_运维_13

先clean ,再次打包

同样的查看那个yml 配置文件

springboot3 需要gradle什么版本 springboot2.3.5_java_14

没毛病【这就是使用Maven 控制SpringBoot 的环境】

回顾一下

① Maven中设置多环境属性

springboot3 需要gradle什么版本 springboot2.3.5_多环境_15

② SpringBoot中引用Maven属性

springboot3 需要gradle什么版本 springboot2.3.5_java_16

③ 执行Maven打包指令,并在生成的boot打包文件.jar文件中查看对应信息

3.5.3 一个小问题

现在clean 一下先

springboot3 需要gradle什么版本 springboot2.3.5_配置文件_17

问题来了

现在Maven pom中写好了配置,我直接启动项目

springboot3 需要gradle什么版本 springboot2.3.5_spring boot_18

拿到该拿到的属性,没问题

把它换回dev

springboot3 需要gradle什么版本 springboot2.3.5_多环境_19

换成功了啊【但是李老师的没有成功,旧版本bug】

跳过了【反正咱们改了pom文件记得刷就好了】

3.5.4 小结
  1. 当Maven与SpringBoot同时对多环境进行控制时,以Mavn为主,SpringBoot使用@…@占位符读取Maven对应的配置属性值
  2. 基于SpringBoot读取Maven配置属性的前提下,如果在Idea下测试工程时pom.xml每次更新需要手动compile方可生效
3.5.5 总结
  1. 多环境开发(YAML版)
  2. 多环境开发(Properties版)
  3. Maven与SpringBoot多环境冲突现象解决方案