2021-08-05

Spring boot 多环境配置

为什么要使用多环境配置

一个项目的研发有不同阶段(开发,测试,预发布,发布)
在不同阶段可能对应不同的配置(数据库配置,Redis配置,微信扫码授权配置,微信支付配置等等)
在开发的时候,我们一般用开发数据库;而在发布环境的时候,我们是用正式的数据多个环境之间的配置互不影响。

多环境配置的作用

不必在一个配置文件中配置多个环境的配置信息,使用哪一个就把其他环境的注释掉,在多环境配置下,只需要在application.yml中指定配置环境就可以实现多环境的切换。

如何使用多环境配置

一、创建yml文件

application.yml
application-dev.yml(开发环境)
application-test.yml(测试环境)
application-uat.yml(预发布环境)
application-prod.yml(生产环境)
2021-08-05

二、配置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

2021-08-05 10:02:58.268  INFO 984 --- [nio-8080-exec-1] c.m.e.a.c.TestApplicationController      : multienv-dev

2021-08-05

2021-08-05 10:49:06.513  INFO 4664 --- [nio-8080-exec-1] c.m.e.a.c.TestApplicationController      : multienv-test

2021-08-05

2021-08-05 10:55:17.346  INFO 24108 --- [nio-8080-exec-1] c.m.e.a.c.TestApplicationController      : multienv-uat

2021-08-05

2021-08-05 10:57:41.447  INFO 2124 --- [nio-8080-exec-3] c.m.e.a.c.TestApplicationController      : multienv-prod
上一篇:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient


下一篇:Android编程之图片(异步)加载类