1、使用场景
在开始讲profiles.active配置时,我们先来考虑几个场景。
我们在开发过程中,经常会碰到多个环境,特别熟数据库,经常是有开发库,测试库,和生产库。一般我们都是连的开发库进行开发,但是有时候也会需要连接测试库,甚至是生产库进行调试工作。我们通常的做法,可能就是直接修改配置文件的数据库连接,需要连哪个库就改成哪个库的连接。可是有些时候我们改来改去经常出错,或者不记得哪个环境的配置了,这时我们可能会想到一次把几个环境的配置都写进来,把不需要的注释掉,这确实是一种可行的办法,但还有没有更好的办法呢?
再说部署时候的场景。一般我们打包里面包含的都是开发库的配置文件,经常部署的时候,需要手动修改部署包里面的配置文件,如果部署到测试环境,就修改成测试环境的数据库,如果是生产环境,就修改成生产环境的数据库。那么有没有办法让一个部署包能同时适配各种不同的环境呢。
接下来我们要讲的profiles.active就可以解决上面的需求。
2、profiles.active
profiles.active表示当前激活的环境参数,他可以是一个字符数组,但一般情况下,我们都是使用单个字符,例如dev,test,prod来标识。这里我们还是以数据库配置为例,假设我们原来的application.yml里面配置的数据源是本地数据源,现在我们再来配置一个开发库,以dev作为环境标识。
我们将application.yml复制一份,命名为application-dev.yml,application-{profile-name}.yml&