多环境配置快速切换开发、测试、生产环境
- 前言
- 1、使用
- 1.1指定环境@Profile({"dev","test"})
- Spring Profiles 提供一个隔离配置的方式,使其仅在特定环境生效 任何@Component,@Configuration或@ConfigurationProperties 可以使用@Profile标记,来指定何时被加载。(容器中的组件都可以被@Prefile标记)
- 1.2环境激活
- 1.2.1、配置文件激活
- 1.2.3、通过启动文件激活
- 2、Profiles 分组
- 3、Profile配置文件
前言
环境隔离能力,快速切换开发、测试、生产环境
步骤:
1、标识环境:指定那些组件、配置在那个生效
2、切换环境:这个环境对应的所有组件和配置就应该生效
1、使用
1.1指定环境@Profile({“dev”,“test”})
Spring Profiles 提供一个隔离配置的方式,使其仅在特定环境生效
任何@Component,@Configuration或@ConfigurationProperties 可以使用@Profile标记,来指定何时被加载。(容器中的组件都可以被@Prefile标记)
区分出几个环境:dev(开发环境)、test(测试i环境)、prod(生产环境)、default(默认环境)
指定每个组件在那个环境下生效
设置环境之后运行报错 因为目前使用的是默认环境所以找不到Cat了 需要使用try和catch
1.2环境激活
1.2.1、配置文件激活
#指定激活环境
spring.profiles.active=dev
#指定激活环境
#spring.profiles.active=dev#指定默认环境
#spring.profiles.default=default#包含指定环境,不管你激活那个环境都有,总是要生效的环境
spring.profiles.include=dev,test
1.2.3、通过启动文件激活
2、Profiles 分组
生产环境=激活的环境/默认环境+包含的环境
项目中使用:
基本配置:比如日志log,mybatis 等写到包含环境中
需要动态切换变化的db\redis:写到激活的环境中
#分组
spring.profiles.active=haha
spring.profiles.group.haha = dev,testspring.profiles.group.haha[0]=dev
spring.profiles.group.haha[1]=test
3、Profile配置文件
application.properties:主配置文件,任何环境下都生效
其他profile环境下命名规范:application-{profile标识}.properties
比如:
appliction-dev.properties
激活指定环境即可:配置文件激活、命令行激活
效果:
项目的说有生效配置向= 激活环境配置文件的说有项+主配置文件和激活文件不冲突的所有项
如果发生配置冲突,以激活的环境配置文件为准
application-{profile标识}。properties 优先级 application.properties
主配置和激活的配置都生效,优先以激活的配置为准