前言
软件开发中经常有开发环境、测试环境、预发布环境、生产环境,而且一般这些环境配置会各不相同,手动改配置麻烦且容易出错,如何管理不同环境的配置参数呢?spring-boot + maven可以解决不同环境独立配置不同参数的问题。
单配置文件
如果项目中只有application.properties或application.yml这一个配置文件,那么只需要复制这个配置文件然后重命名就可以了。
一、配置文件命名
不同环境的配置yml或properties文件名不一样,在加上一个控制使用环境的配置文件:
application.properties (控制使用环境的配置文件)
application-dev.properties (开发环境)
application-test.properties(测试环境)
application-prod.properties(生产环境)
二、配置文件设置不同内容
以端口号为例,不同环境设置不同的端口号
application-dev.properties 的端口号设置8010
application-test.properties 的端口号设置8020
application-prod.properties 的端口号设置8090
三、设置默认启动环境
多配置文件
如果有多个配置文件呢,上面这种方式就明显不合适了。
配置文件设置
重新创建个目录里面,里面再创建多个环境的目录,然后把配置文件放各个环境的目录下
加载配置文件
<profiles>
<profile>
<!--开发环境-->
<id>dev</id>
<!--默认选中此环境-->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profileActive>dev</profileActive>
</properties>
<build>
<!--配置文件所在目录-->
<resources>
<resource>
<directory>src/main/profiles/dev</directory>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</profile>
<profile>
<!--测试环境-->
<id>test</id>
<properties>
<profileActive>test</profileActive>
</properties>
<build>
<!--配置文件所在目录-->
<resources>
<resource>
<directory>src/main/profiles/test</directory>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</profile>
<profile>
<!--正式环境-->
<id>prod</id>
<properties>
<profileActive>prod</profileActive>
</properties>
<build>
<!--配置文件所在目录-->
<resources>
<resource>
<directory>src/main/profiles/prod</directory>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</profile>
</profiles>
然后reload一下maven会看到这里多了一个Profiles文件,里面有环境选项,选中那个就会运行那个环境,打包也一样,非常方便