文章目录
- 简介
- 1.通过分隔符隔离
- 2.通过使用不同的配置文件区分
- 3.测试
简介
一个项目从开发到上线一般要经过几个环境, dev测试环境-uat预生产环境-prod生产环境,每个环境的使用的数据库或者配置不同,这时候可以通过下面两种方式区分配置,达到快速切换的效果。
1.通过分隔符隔离
- 1.在application.yml配置文件中可以通过 - - - 分隔不同环境的配置
- 2.在隔离的配置中通过spring.profiles定义当前这段配置的环境名称,下面定义了dev和prod两个环境
spring:
profiles:
#选择指定的环境
active: dev
#------------- dev配置 ---------------
---
spring:
profiles: dev
version: 1.0.1
#------------- prod配置 ---------------
---
spring:
profiles: prod
version: 1.0.0
2.通过使用不同的配置文件区分
文件名的定义规则是: application-xxx.yml , xxx表示环境名称,为了兼容上面的分割符定义的两个环境,这里也创建了dev和prod两个环境的配置文件,两种方式可以混合使用,建议配置项多的时候还是用配置文件区分开。
只定义了一个spring.application.name属性,prod环境名称为test-prod,dev环境名称为test-dev
3.测试
@RestController
public class TestController {
@Value("${spring.application.name}")
public String appName;
@Value("${version}")
public String version;
@GetMapping
public String test() {
return "appName="+appName+" , version="+version;
}
}
修改配置文件spring.profiles.active=prod再进行测试可以看到两种配置都生效了。
线上配置
在线上运行jar包的时候可以通过 --spring.profiles.active传入动态参数覆盖配置文件里的选项
java -jar xxx.jar --spring.profiles.active=prod