Spring Boot---(2)SpringBoot多环境配置和使用

时间:2022-08-05 21:49:02

我们在开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发、测试、生产等。其中每个环境的数据库地址、服务器端口等等配置都会不同,如果在为不同环境打包时都要频繁修改配置文件的话,那必将是个非常繁琐且容易发生错误的事。所以,我们可以写多个文件,每个文件有不同的环境,当我们需要切换时,去选择对应环境的配置文件就可以了。

这个实现起来也非常简单,主要分为两步:

1.自定义配置文件

比如,定义一个开发环境,一个测试环境,一个线上环境,这里以开发环境为例:

自定义的文件名为:application-dev.properties,里面配置了如访问的端口,mysql数据库,redis数据库等环境。

# poty
server.port=8088
# mysql
spring.datasource.url=jdbc:mysql://10.1.2.40:3306/test1
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# mybatis
mybatis.typeAliasesPackage=com.example.demo.domain
mybatis.mapperLocations=classpath:mapper/*.xml
如果是测试环境,我们可以再定义一个文件名为: application- test .properties,里面配置测试环境。

2.选择配置文件

我们定义了多个环境,那么如何选择使用哪个环境呢?这个需要在application.properties里,用spring.profiles.active=xxx

来做设置:

# choose environment eg: choose dev,means use application-dev.properties
spring.profiles.active=dev
这样环境就切换到了 application- dev .properties里定义的环境了。

总结:
多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:
application-dev.properties:开发环境
application-test.properties:测试环境
application-prod.properties:生产环境
至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profiles.active属性来设置,其值对应{profile}值。