Spring Boot 2.4 对多环境配置的支持更改

简介: Spring Boot 2.4 对多环境配置的支持更改

在目前最新的Spring Boot 2.4版本中,对配置的加载机制做了较大的调整。相关的问题最近也被问的比较多,所以今天就花点时间,给大家讲讲Spring Boot 2.4的多环境配置较之前版本有哪些变化。

多环境配置

2.4版本之前

先回顾下,2.4版本之前,我们在yaml配置文件中,使用spring.profiles来定义不同环境的标识,比如下面这样

spring:
  profiles: "dev"
name: dev.didispace.com
---
spring:
  profiles: "test"
name: test.didispace.com
---
spring:
  profiles: "prod"
name: prod.didispace.com

2.4版本之后

而在本次2.4版本升级之后,我们需要将spring.profiles配置用spring.config.activate.on-profile替代,比如上面的配置需要修改为如下配置:

spring:
  config:
    activate:
      on-profile: "dev"
name: dev.didispace.com
---
spring:
  config:
    activate:
      on-profile: "test"
name: test.didispace.com
---
spring:
  config:
    activate:
      on-profile: "prod"
name: prod.didispace.com

指定环境启动

应用启动的时候,我们要加载不同的环境配置的参数不变,依然采用spring.profiles.active参数,对应值采用spring.config.activate.on-profile定义的标识名称。比如下面的命令就能激活dev环境的配置。

java -jar myapp.jar -Dspring.profiles.active=dev

在应用启动的时候,我们也能看到对应的配置激活日志:

2020-12-16 16:34:20.614  INFO 5951 --- [           main] c.d.chapter12.Chapter12Application       : The following profiles are active: dev

我们也可以将spring.profiles.active写入yaml配置中,这样的作用就可以指定默认使用某一个环境的配置,通常我们可以设置成开发环境,这样有利于我们平时的开发调试,而真正部署到其他环境的时候则多以命令参数激活为主。

spring:
  profiles:
    active: "dev"
---
spring:
  config:
    activate:
      on-profile: "dev"
name: dev.didispace.com
---
spring:
  config:
    activate:
      on-profile: "test"
name: test.didispace.com
---
spring:
  config:
    activate:
      on-profile: "prod"
name: prod.didispace.com

代码示例

本文的相关例子可以查看下面仓库中的chapter1-2目录:

如果您觉得本文不错,欢迎Star支持,您的关注是我坚持的动力!

相关阅读

目录
相关文章
|
Java 应用服务中间件 Maven
SpringBoot 项目瘦身指南
SpringBoot 项目瘦身指南
305 0
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
560 0
|
10月前
|
XML Java 应用服务中间件
Spring Boot 两种部署到服务器的方式
本文介绍了Spring Boot项目的两种部署方式:jar包和war包。Jar包方式使用内置Tomcat,只需配置JDK 1.8及以上环境,通过`nohup java -jar`命令后台运行,并开放服务器端口即可访问。War包则需将项目打包后放入外部Tomcat的webapps目录,修改启动类继承`SpringBootServletInitializer`并调整pom.xml中的打包类型为war,最后启动Tomcat访问应用。两者各有优劣,jar包更简单便捷,而war包适合传统部署场景。需要注意的是,war包部署时,内置Tomcat的端口配置不会生效。
2520 17
Spring Boot 两种部署到服务器的方式
|
8月前
|
Java 数据库 微服务
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——指定项目配置文件
在实际项目中,开发环境和生产环境的配置往往不同。为简化配置切换,可通过创建 `application-dev.yml` 和 `application-pro.yml` 分别管理开发与生产环境配置,如设置不同端口(8001/8002)。在 `application.yml` 中使用 `spring.profiles.active` 指定加载的配置文件,实现环境快速切换。本节还介绍了通过配置类读取参数的方法,适用于微服务场景,提升代码可维护性。课程源码可从 [Gitee](https://gitee.com/eson15/springboot_study) 下载。
344 0
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
508 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
693 2
|
缓存 NoSQL Java
Springboot自定义注解+aop实现redis自动清除缓存功能
通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
450 2
|
Java Maven
springboot项目打jar包后,如何部署到服务器
springboot项目打jar包后,如何部署到服务器
1044 1
|
运维 Java 关系型数据库
Spring运维之boot项目bean属性的绑定读取与校验
Spring运维之boot项目bean属性的绑定读取与校验
175 2
|
存储 运维 Java
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
235 2

热门文章

最新文章