Spring boot 多环境配置
为什么要使用多环境配置
一个项目的研发有不同阶段(开发,测试,预发布,发布)
在不同阶段可能对应不同的配置(数据库配置,Redis配置,微信扫码授权配置,微信支付配置等等)
在开发的时候,我们一般用开发数据库;而在发布环境的时候,我们是用正式的数据多个环境之间的配置互不影响。
多环境配置的作用
不必在一个配置文件中配置多个环境的配置信息,使用哪一个就把其他环境的注释掉,在多环境配置下,只需要在application.yml中指定配置环境就可以实现多环境的切换。
如何使用多环境配置
一、创建yml文件
application.yml
application-dev.yml(开发环境)
application-test.yml(测试环境)
application-uat.yml(预发布环境)
application-prod.yml(生产环境)
二、配置yml文件内容
application-dev.yml 开发环境
springstudy:
muzi: multienv-dev
application-test.yml 测试环境
springstudy:
muzi: multienv-test
application-uat.yml 预发布环境
springstudy:
muzi: multienv-uat
application-prod.yml 发布环境
springstudy:
muzi: multienv-prod
三、创建配置类
/**
* @author muzi
* @description 多环境配置
* @date 2021年08月05日 9:56
*/
@Component
@ConfigurationProperties(prefix = "springstudy")
public class MultienvConfig {
private String muzi;
public String getMuzi() {
return muzi;
}
public void setMuzi(String muzi) {
this.muzi = muzi;
}
}
四、创建测试类
/**
* @author muzi
* @description 测试多环境配置
* @date 2021年08月05日 9:58
*/
@Controller
@Slf4j
public class TestApplicationController {
@Autowired
MultienvConfig multienvConfig;
@RequestMapping("/testApplication")
String index(){
log.info(multienvConfig.getMuzi());
return "index";
}
}
五、指定开发环境(修改application.yml)
spring:
profiles:
active: dev #开发环境
#active: test #测试环境
#active: uat #预发布环境
#active: prod #发布环境
六、执行查看控制台
2021-08-05 10:02:58.268 INFO 984 --- [nio-8080-exec-1] c.m.e.a.c.TestApplicationController : multienv-dev
2021-08-05 10:49:06.513 INFO 4664 --- [nio-8080-exec-1] c.m.e.a.c.TestApplicationController : multienv-test
2021-08-05 10:55:17.346 INFO 24108 --- [nio-8080-exec-1] c.m.e.a.c.TestApplicationController : multienv-uat
2021-08-05 10:57:41.447 INFO 2124 --- [nio-8080-exec-3] c.m.e.a.c.TestApplicationController : multienv-prod