转载

17.SpringBoot多环境配置

问题分析

为什么SpringBoot需要用到多环境配置呢?其实多环境,指的就是生产环境、开发环境、测试环境等相互切换,那么此时,如果我们直接修改配置文件,就会造成我们大量的无价值工作,极大的降低我们的工作效率,所以此时,我们就会需要更加高效的实现开发环境切换的方法。

思路分析

目前来说,我们实现配置切换,大致来说,无非有三种,一是同一个配置文件里面写不同的配置,然后在主配置中选择加载哪一种配置;二是直接写多个配置文件,在主配置文件里面选择配置哪一种配置;三是项目上线之后,直接通过命令的方式,将配置修改为我们需要的配置类型。说到这里哈,有些人会觉得其实只是前两种,第三个不应该单独列出来,这个问题怎么说呢?一千个人一千个哈姆雷特。

具体实现

这里做测试用,所以就在一个项目里面进行测试,不同的配置里面只写端口,不写其他的,所以就把公共的一样的东西,都列在公共的内容里面

公共内容

1.建立一个SpringBoot项目这个就略过了,我直接把我已经建好的项目奉上,因为贴图出来内容太多了

方式一 同一个配置文件内写多个版本

步骤一:

在resources文件夹下面建一个名叫 application.yml 的配置文件,并把原本的 application.properties 文件删除,注意,这里只是个人爱好哈,我自己更加偏好用 yml 文件

# 主配置
spring:
  profiles:
    active: dev # 选择开发环境的配置
---
# 选配一
server:
  port: 2222 # 配置的测试环境的端口
spring:
  profiles: test # 测试环境配置的名称

---
# 选配二
server:
  port: 1111 # 配置的开发环境的端口
spring:
  profiles: dev # 开发环境配置的名称

步骤二:

启动项目,查看控制台日志内容,端口是否改变

17.SpringBoot多环境配置

这里可以看到我的端口号已经统一为我选择的开发环境的端口号1111,说明我的配置是成功了的

方式二 创建多个配置文件

步骤一:

创建3个配置文件,主配置文件文件名为 application.yml ,测试环境配置文件名为 application-test.yml ,开发环境配置文件名为 application-dev.yml

这里需要进行说明的是,为什么要这样命名,是因为SpringBoot底层就会根据配置文件名的:“-”后面的内容去匹配不同的配置文件,重点在于那个:“-”,所以为了命名规范,我写的名字是这样的。

步骤二:

重启服务器,查看控制台的日志内容查看端口号是否发生改变

17.SpringBoot多环境配置

这里可以看到我的端口号已经切换为2222,说明我的配置已经成功了

方式三 通过命令进行更改

这个方式的前提肯定是我们配置了上面两种方式的其中一种的前提下哈

java -jar projectName.jar --spring.profiles.active=dev

结语

三种方式,亲测有效。

原文  https://segmentfault.com/a/1190000022333678
正文到此结束
Loading...