SpringBoot多环境开发该如何配置

 更新时间:2022年09月08日 09:50:16   作者:mzz124  
这篇文章主要介绍了 SpringBoot多环境的开发配置详情,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、配置多环境

如下例:

# 当前激活的环境为 dev
spring:
  profiles:
    active: dev
# 日志等级
logging:
  level:
    root: info
---
# 开发环境
spring:
  config:
    activate:
      on-profile: dev
server:
  port: 81
---
#生产环境
spring:
  config:
    activate:
      on-profile: pro
server:
  port: 80
---
# 测试环境
spring:
  config:
    activate:
      on-profile: test
server:
  port: 82

在 yml 配置文件中,用三个横线分隔不同的环境,spring.config.activate.on-profile 属性表示当前环境名称,没有设置环境名称的部分,会作为默认配置,被所有环境采用,比如上例中的日志等级

spring.config.activate.on-profile 也可以写成 spring.profiles 更简便些,如下例:

# 开发环境
spring:
  profiles: dev

但这个写法已经过时了,会被警告

二、激活环境

1. spring.profiles.active属性

将 spring.profiles.active 属性配置在没有环境名称的部分,即可激活指定环境,如前一部分中的样例

也可以指定多个环境,用逗号分隔或者写成数组

spring:
  profiles:
    active: env_1, env_2

2. 命令行激活

将项目打成 jar 包,通过 jar 包运行项目时指定 spring.profiles.active 属性值即可,如下:

java -jar 包名.jar --spring.profiles.active=env_1,env_2

激活多个环境时,逗号后不能有空格

即使 yaml 中配置了 spring.profiles.active 的值,还是会按照命令行来激活环境,因为命令行的优先级高于配置文件,同样的,配置文件中的其他属性也可以通过命令行来指定

3. 读取 pom.xml激活

Maven进阶中可以过滤资源文件,使其能够读取 pom.xml 中的属性

这里就是在 pom 中指定 spring.profiles.active 的值,达到激活环境的目的

yaml 配置文件中这样写:

spring:
  profiles:
    active: @profiles.active@

SpringBoot 项目中资源文件读取 pom 属性要用 @ 包裹属性名,而不能用 ${ }

pom.xml 中这样写:

<properties>
	<profiles.active>env_1, env_2</profiles.active>
</properties>
<build>
	<resources>
		<resource>
			<directory>src/main/resources</directory>
			<filtering>true</filtering>
		</resource>
	</resources>
</build>

如此配置,编译以后 yaml 中的属性值就被替换了

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

相关文章

  • 解决nacos启动报错Server check fail, please check server localhost ,port 9848 is available的问题

    解决nacos启动报错Server check fail, please che

    这篇文章主要介绍了nacos启动 Server check fail, please check server localhost ,port 9848 is available的错误原因以及解决方法,需要的朋友可以参考下
    2023-09-09
  • java根据List内对象的属性排序方法

    java根据List内对象的属性排序方法

    下面小编就为大家分享一篇java根据List内对象的属性排序方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • 解决SpringAop内部调用时不经过代理类的问题

    解决SpringAop内部调用时不经过代理类的问题

    这篇文章主要介绍了解决SpringAop内部调用时不经过代理类的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Quarkus云原生开篇java框架简介

    Quarkus云原生开篇java框架简介

    Quarkus 是小红帽开源的专门针对云容器环境优化的云原生java框架,博主接下来的项目估计都会使用这个框架来开发,相关的问题都会记录在这个系列,本文是个开篇
    2022-02-02
  • Spring使用三级缓存解决循环依赖的问题

    Spring使用三级缓存解决循环依赖的问题

    本文给大家分享Spring使用三级缓存解决循环依赖的问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-06-06
  • spring boot 图片上传与显示功能实例详解

    spring boot 图片上传与显示功能实例详解

    这篇文章主要介绍了spring boot 图片上传与显示功能实例详解,需要的朋友可以参考下
    2017-04-04
  • 基于dubbo中Listener的实现方法

    基于dubbo中Listener的实现方法

    下面小编就为大家带来一篇基于dubbo中Listener的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • SpringBoot进行参数校验的方法详解

    SpringBoot进行参数校验的方法详解

    在日常的接口开发中,为了防止非法参数对业务造成影响,经常需要对接口的参数进行校验。本文通过示例详细讲解了SpringBoot如何进行参数校验的,感兴趣的可以学习一下
    2022-04-04
  • IDEA巧用Postfix Completion让码速起飞(小技巧)

    IDEA巧用Postfix Completion让码速起飞(小技巧)

    这篇文章主要介绍了IDEA巧用Postfix Completion让码速起飞,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Java实现Excel表单控件的添加与删除

    Java实现Excel表单控件的添加与删除

    本文通过Java代码示例介绍如何在Excel表格中添加表单控件,包括文本框、单选按钮、复选框、组合框、微调按钮等,以及如何删除Excel中的指定表单控件,需要的可以参考一下
    2022-05-05

最新评论