SpringBoot多环境配置

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

SpringBoot多环境配置

准Java全栈开发工程师   2022-06-28 我要评论

一、为什么要配置多环境

当我们工作开发真实的项目时,可能会遇到不同的环境,如:开发环境、生产环境、测试环境等,不同的环境所需要的配置内容也会不尽相同,如果我们每次切换环境时再去配置对应的环境配置,肯定会降低我们的开发效率,所以,掌握多环境配置还是非常有必要的。

二、如何进行多环境配置呢

我们还是以配置端口号为例,来演示如何进行多环境配置问题。

1、针对 yaml 配置文件

# 设置启用的环境
spring:
  profiles:
    active: dev
 
---
# 开发环境
spring:
  profiles: dev  # 为开发环境命名
server:
  port: 80
 
---
# 生产环境
spring:
  profiles: pro  # 为生产环境命名
server:
  port: 81
 
---
# 测试环境
spring:
  profiles: test  # 为测试环境命名
server:
  port: 82
  • 不同的环境之间需要用 3 个 “ - ” 号作为分割。
  • 在需要使用哪个环境时,就将 active 的属性值声明为那个环境的名字。
  • 初始 port 端口号,还可以在配置其他信息,在此我就不再一一赘述了。

2、针对 properties 配置文件

使用 yaml 配置文件,一个文件就能够完成多环境的配置工作,但是如果使用 properties 配置文件的话,需要使用多文件才能够完成。

主配置文件 application.properties

# 设置启用的环境
spring.profiles.active=dev

开发环境 application-dev.properties

server.port=80

生产环境 application-pro.properties

server.port=81

测试环境 application-test.properties

server.port=82
  • 有多少个环境,就需要定义多少个配置文件,在自己的配置文件中配置环境内容。
  • 在主配置文件中声明使用哪个环境。

三、命令行启动参数

通常情况下,我们都会将做好的项目打包成 jar 包,那么,如果我们在命令行中执行 jar 包的时候能够完成切换环境的功能吗?还是说,我们必须在到 IDEA 开发工具中去配置文件中手动改变当前启用的环境呢?答案当然是否定的,我们可以通过命令行参数还完成环境的切换。

第一步:打包项目

打包工作在 【SpringBoot】快速入门一文中有详细讲解,感兴趣的小伙伴可以移步查看。

选中 package 后运行开始打包。

完成到找到相应的文件夹,执行 cmd 命令。

第二步:输入命令行

输入命令:java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=test

通过分析端口号能够发现,已经切换到了测试环境中。

命令最后多了 “ --spring.profiles.active=test ” 部分内容,仔细观察是否发现,这和我们在配置文件中写的配置启用环境内容是不是非常像呢?没错,就是按照它写的。

这就告诉我们,如果我们想使用命令行方式切换环境,可以使用上述方式进行。

补充内容

除了使用上述方式可以完成切换环境的操作外,如果我们还想使用一个我们从未定义过的端口号该怎么做呢?

输入命令:java -jar demo-0.0.1-SNAPSHOT.jar --server.port=90

直接使用 “ server.port=90 ” 指定临时端口号,同样能够生效。

很多小伙伴不明白为什么要使用 “ server.port" 的方式指定,这是因为我们在配置文件中就是使用该方式指定端口号的,只是搬到了命令行参数上罢了。

当同时指定 “ server.port = 90 ” 和 “ spring.profiles.active=test ” 时,哪一个会起作用呢?我们不妨测试一下。

根据端口号可以得出 “ server.port = 90 ” 这个参数起作用了,说明它的优先级更高。

对于优先级的内容,可以参考官网。

当配置多个时,优先级高的生效。

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们