springboot3环境隔离的实现
作者:晨曦chenxi
Profiles
环境隔离能力;快速切换开发、测试、生产环境
步骤:
- 标识环境:指定哪些组件、配置在哪个环境生效{dev 开发环境 test 测试环境 prod 生产环境 defult 默认环境 }
- 切换环境:这个环境对应的所有组件和配置就应该生效 只有激活对应的环境,这些组件才会生效
使用
指定环境
Spring Profiles 提供一种隔离配置的方式,使其仅在特定环境生效;
任何@Component, @Configuration 或 @ConfigurationProperties 可以使用 @Profile 标记,来指定何时被加载。【容器中的组件都可以被 @Profile标记】
环境激活
配置激活指定环境; 配置文件
spring.profiles.active=production,hsqldb
也可以使用命令行激活。--spring.profiles.active=dev,hsqldb
还可以配置默认环境; 不标注@Profile 的组件永远都存在。
- 以前默认环境叫default
- spring.profiles.default=test 不推荐通过修改默认环境的方式来切换环境
推荐使用激活方式激活指定环境
也可以使用命令行激活。--spring.profiles.active=dev,hsqldb
还可以配置默认环境; 不标注@Profile 的组件永远都存在。
- 以前默认环境叫default
- spring.profiles.default=test
推荐使用激活方式激活指定环境
环境包含
注意:
spring.profiles.active 和spring.profiles.default 只能用到 无 profile 的文件中,如果在application-dev.yaml中编写就是无效的
也可以额外添加生效文件,而不是激活替换。比如:
spring.profiles.include[0]=common #包含指定的环境,不管激活哪个环境 spring.profiles.include[1]=local
最佳实战:
- 生效的环境 = 激活的环境/默认环境 + 包含的环境【总是要生效的环境】
- 项目里面这么用
- 基础的配置mybatis、log、xxx:写到包含环境中
- 需要动态切换变化的 db、redis:写到激活的环境中
Profile 分组
创建prod组,指定包含db和mq配置
spring.profiles.group.prod[0]=db spring.profiles.group.prod[1]=mq #直接按组激活相应的环境 ,组内可以写环境配置也可以写其他的环境配置组
使用--spring.profiles.active=prod ,就会激活prod,db,mq配置文件
Profile 配置文件
application-{profile}.properties可以作为指定环境的配置文件。
激活这个环境,配置就会生效。最终生效的所有配置是
- application.properties:主配置文件,任意时候都生效
- application-{profile}.properties:指定环境配置文件,激活指定环境生效
profile优先级 > application
项目的所有生效配置项 = 激活环境配置中的所有项 + 主配置文件中的与环境配置文件不冲突的项
到此这篇关于springboot3环境隔离的实现的文章就介绍到这了,更多相关springboot3环境隔离内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!