在软件开发的世界里,Spring Boot 像是一股清流,它以约定大于配置的理念,简化了 Spring 应用的初始搭建以及开发过程。但随着版本的不断迭代,Spring Boot 在 2.4 版本中带来了一些重要的变化,尤其是在多环境配置方面。本文将带你深入理解这些变化,助你在技术的浪潮中乘风破浪。
🔍 旧版本的多环境配置
在 Spring Boot 2.4 之前,我们配置多环境是通过 spring.profiles
来实现的。举个例子,如果我们有开发环境(dev)和生产环境(prod),通常会这样写:
spring:
profiles:
active: "dev"
---
spring.profiles: "dev"
spring.profiles.include: "dev-db,dev-mq"
---
spring.profiles: "dev-db"
db: dev-db.didispace.com
---
spring.profiles: "dev-mq"
mq: dev-mq.didispace.com
这样的配置结构,通过 spring.profiles.include
属性来引入不同的中间件配置,看起来非常直观。启动应用时,可以在日志中看到被激活的配置组,如 dev,dev-db,dev-mq
。
🆕 2.4 版本的多环境配置
然而,当你迈入 Spring Boot 2.4 的世界,上述的配置方式已经行不通了。新版本中,spring.profiles
已不再使用,取而代之的是 spring.config.activate.on-profile
和 spring.profiles.group
。
这样的改动,虽然一开始可能让人不太适应,但其实它带来了更加强大和灵活的配置方式。新的配置长这个样子:
spring:
profiles:
active: "dev"
group:
"dev": "dev-db,dev-mq"
"prod": "prod-db,prod-mq"
---
spring:
config:
activate:
on-profile: "dev-db"
db: dev-db.didispace.com
---
spring:
config:
activate:
on-profile: "dev-mq"
mq: dev-mq.didispace.com
---
spring:
config:
activate:
on-profile: "prod-db"
db: prod-db.didispace.com
---
spring:
config:
activate:
on-profile: "prod-mq"
mq: prod-mq.didispace.com
此时,如果我们启动应用,默认激活的是 dev
配置,相应的 dev-db
和 dev-mq
也会被激活。同样,我们可以通过修改 spring.profiles.active
为 prod
,来快速切换到生产环境的配置。
🔄 环境切换的优雅演进
在 2.4 版本中,所有环境的定义都转移到了 spring.profiles.group
中,这意味着你可以在一个地方管理所有的环境配置。这不仅让配置文件看起来更加整洁,而且可以更加灵活地控制各个环境所需要加载的配置组。
🎯 精准的配置激活
通过 spring.config.activate.on-profile
属性,我们可以更加精准地控制配置的激活条件。这是一个更加细粒度的控制方式,它为我们提供了更多的可能性,比如基于特定条件激活某些配置组。
🛠️ 实践出真知
为了帮助你更好地掌握这些改动,程序猿 DD 还提供了一个样例工程。通过实际操作,你可以更直观地感受到新旧配置方式的差异。同时,相关阅读中还有更多的 Spring Boot 配置细节等着你去探索。无论你是 Spring Boot 的新手,还是有经验的开发者,这些知识都将对你大有裨益。
🌐 相关阅读
当然,多环境配置只是冰山一角。如果你想深入了解 Spring Boot 2.x 的其他高级特性,如配置元数据、日志管理、数据访问和缓存使用等,不妨浏览一下程序猿 DD 的其他文章。每一篇都是精心准备,旨在帮助你在 Spring Boot 的世界中游刃有余。
🎉 总结
Spring Boot 2.4 的变化,是 Spring 团队对现有配置机制的一次深思熟虑的优化。虽然刚开始可能会有点不习惯,但一旦你理解并掌握了这些新特性,你会发现它们为你的应用构建带来了更强大的支持和更高的灵活性。所以,拥抱变化,拥抱新的 Spring Boot 2.4,让我们一起在技术的道路上不断前进!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于