使用Profile文件进行多环境配置
在Spring Boot框架中,提供了使用Profile配置文件来进行多环境配置,该配置文件名必须满足application-{profile}.properties的格式,其中{profile}对应具体的环境标识。这里以开发环境、测试环境和生产环境为例,编写对应环境的配置文件,示例代码如下。
application-dev.properties // 开发环境配置文件
application-test.properties // 测试环境配置文件
application-prod.properties // 生产环境配置文件
如果想要使用上述对应环境的配置文件,只需要在Spring Boot全局配置文件中激活指定环境的配置文件即可。例如,可以通过命令行参数的配置方式使用spring.profiles.active属性进行设置,该属性值对应上面提到的profile值,示例代码如下。
java -jar xxx.jar --spring.profiles.active=dev
上述示例使用了命令行参数的设置方式,在命令中带上“--spring.profiles.active=dev”参数选择性激活指定的dev开发环境配置文件application-dev.properties。
当然,除了上述在命令行中带上激活指令激活配置文件外,通常还可以在项目全局配置文件中配置spring.profiles.active属性来进行激活设置。这里以激活dev开发环境配置文件为例,在application.properties全局配置文件中,示例代码如下。
# 激活开发环境配置文件
spring.profiles.active=dev
接下来,通过一个案例来演示Profile多环境配置文件的具体使用,具体步骤如下。
(1)打开chapter02项目的resources目录,在该目录下分别创建针对不同运行环境的配置文件。根据具体需求并按照Profile文件命名规则,分别创建application-dev.properties、application-test.properties和application-prod.properties多环境配置文件,并在各个配置文件中对服务端口进行不同的设置,示例代码如下。
● application-dev.properties
server.port=8081
● application-test.properties
server.port=8082
● application-prod.properties
server.port=8083
在Spring Boot项目中,程序内部默认端口为8080,而上述示例中通过Profile文件进行了多环境配置,来针对不同的运行环境设置了不同的服务端口号。其中,application-dev.properties开发环境中,设置服务端口号为8081;application-test.properties测试环境中,设置服务端口号为8082;application-prod.properties生产环境中,设置服务端口号为8083。
(2)打开chapter02项目的resources目录下的全局配置文件application.properties,在该配置文件中配置spring.profiles.active属性来对Profile文件进行选择性的激活设置,示例代码如下。
# 指定要激活的profile多环境配置文件
spring.profiles.active=dev
上述代码中,在全局配置文件application.properties中指定了激活的配置文件为dev开发环境配置文件,即上面的application-dev.properties全局配置文件。
(3)为了查看使用Profile文件进行多环境配置的效果,直接启动chapter02项目的启动类Chapter02Application,并查看控制台输出效果,结果如图1所示。
图1 程序测试效果
从图1可以看出,程序正常启动,并显示服务启动的端口号为8081,这与选择激活的配置文件application-dev.properties中的端口号一致,说明Profile多环境配置文件生效。为了查看到Profile文件多环境配置更显著的效果,可以将全局配置文件中激活的Profile文件进行修改,重启项目进行测试。