SpringBoot多环境配置教程详解

 更新时间:2022年06月24日 08:43:14   作者:准Java全栈开发工程师  
当开发真实的项目时,可能会遇到不同的环境,不同的环境所需要的配置内容也会不尽相同,所以,掌握多环境配置还是非常有必要的。本文为大家准备了SpringBoot多环境配置教程,需要的可以参考下

一、为什么要配置多环境

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

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

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

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 ” 这个参数起作用了,说明它的优先级更高。

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

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

到此这篇关于SpringBoot多环境配置教程详解的文章就介绍到这了,更多相关SpringBoot多环境配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MyBatis将查询出的两列数据装配成键值对的操作方法

    MyBatis将查询出的两列数据装配成键值对的操作方法

    这篇文章主要介绍了MyBatis将查询出的两列数据装配成键值对的操作代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • 自定义注解和springAOP捕获Service层异常,并处理自定义异常操作

    自定义注解和springAOP捕获Service层异常,并处理自定义异常操作

    这篇文章主要介绍了自定义注解和springAOP捕获Service层异常,并处理自定义异常操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • redis与spring整合使用的步骤实例教程

    redis与spring整合使用的步骤实例教程

    这篇文章主要给大家介绍了关于redis与spring整合使用的相关资料,文中通过示例代码将实现的步骤一步步介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-03-03
  • Eclipse中使用Maven创建Java Web工程的实现方式

    Eclipse中使用Maven创建Java Web工程的实现方式

    这篇文章主要介绍了Eclipse中使用Maven创建Java Web工程的实现方式的相关资料,希望通过本文能帮助到大家,让大家实现这样的方式,需要的朋友可以参考下
    2017-10-10
  • MyBatis 实现批量插入和删除中双层循环的写法案例

    MyBatis 实现批量插入和删除中双层循环的写法案例

    这篇文章主要介绍了MyBatis 实现批量插入和删除中双层循环的写法案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Java项目日志脱敏解决方案

    Java项目日志脱敏解决方案

    为了保护客户的敏感信息,我们提出了四种日志脱敏处理方案,需要根据实际项目需求和情况进行选择,新项目或重构的项目,对于项目标准化要求较高的,推荐使用方案四,感兴趣的朋友参考下本文
    2024-10-10
  • Java获取一个类的隐藏属性的几种方法

    Java获取一个类的隐藏属性的几种方法

    这篇文章主要讨论了在Java中如何访问或修改类的私有字段,包括使用公共的getter和setter方法、反射、继承和序列化机制,文章强调了尊重类的封装性,感兴趣的小伙伴跟着小编一起来看看吧
    2025-02-02
  • Java Swing JLabel标签的使用方法

    Java Swing JLabel标签的使用方法

    这篇文章主要介绍了Java Swing JLabel标签的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • SpringMVC中的HandlerMapping和HandlerAdapter详解

    SpringMVC中的HandlerMapping和HandlerAdapter详解

    这篇文章主要介绍了SpringMVC中的HandlerMapping和HandlerAdapter详解,在Spring MVC中,HandlerMapping(处理器映射器)用于确定请求处理器对象,请求处理器可以是任何对象,只要它们使用了@Controller注解或注解@RequestMapping,需要的朋友可以参考下
    2023-08-08
  • springboot打war包的全过程记录

    springboot打war包的全过程记录

    其实一般使用springboot使用打成jar包比较省事的,但也有很多童鞋是习惯使用war包的,下面这篇文章主要给大家介绍了关于springboot打war包的相关资料,需要的朋友可以参考下
    2022-06-06

最新评论