本文转载请联系架构师京津公众号。在实际项目开发过程中,需要面对不同的运行环境,如开发环境、测试环境、生产环境等,每个运行环境的数据库和Redis服务器配置都不一样。需要手动修改相关系统配置。这种方法特别麻烦,费时费力,出错的概率极高。幸运的是,SpringBoot为我们解决多环境配置问题提供了更简单、更方便的配置方案。下面演示一下SpringBoot系统是如何实现多环境配置的。1、多环境配置通常应用系统可能运行在开发环境(dev)、测试环境(test)、生产环境(prod),那么如何实现多种运行环境的灵活配置和快速切换呢?SpringBoot提供了极其简单的解决方案,只需要简单的配置,应用系统就可以灵活的切换运行环境配置。1、创建多环境配置文件创建多环境配置文件时,需要遵循SpringBoot允许的命名约定。格式为application-{profile}.properties,其中{profile}是对应的环境标识。在项目资源目录下创建三个配置文件application-dev.properties、application-test.properties和application-prod.properties,分别对应开发环境、测试环境和生产环境,如下图所示:根据common三个运行环境拆分成多个不同的配置文件,上面每个运行环境的配置项都是独立配置的。具体如下:application.properties是项目的主要配置文件,里面包含了项目需要的所有公共配置。application-dev.properties是开发环境配置文件,里面包含了项目需要的个别配置。application-test.properties是测试环境配置文件。application-prod.properties是生产环境配置文件。2、修改配置文件通常,开发环境、测试环境、生产环境使用的数据库是不同的,所以下面以不同环境下的不同数据库为例,演示多环境的配置。首先修改application.properties,配置系统的启动端口:#Server端口配置server.port=8088在上面的例子中,application.properties包含了项目需要的所有公共配置。这里配置系统和所有环境的启动端口启动端口为8088,然后修改application-dev.properties开发环境的配置,添加数据库的连接配置。代码示例如下:#指定数据库驱动spring.datasource.driver-class-name=com.mysql.jdbc.Driver#数据库jdbc连接url地址spring.datasource.url=jdbc:mysql://127.0.0.1:3306/myapp_dev#数据库账号spring.datasource.username=rootspring.datasource.password=root配置数据库连接的相关属性,我们看到开发环境配置的数据库是myapp_dev。其他环境的配置文件可以修改对应的配置连接,以上项目的多环境配置就完成了。接下来,我们将演示切换项目运行环境。2、多环境切换我们讲了如何配置多环境,那么在实际测试运行时如何切换系统运行环境呢?这个也很简单,通过修改application.properties配置文件项中的spring.profiles.active配置来激活对应的运行环境。如果没有指定profile配置文件,SpringBoot会默认启动application-default.properties(默认环境)。指定项目启动环境的方式有以下三种:(1)配置文件指定项目启动环境。SpringBoot支持通过spring.profiles.active配置项目启动环境。在application.properties配置文件中添加如下配置项指定对应的环境目录:#系统运行环境spring.profiles.active=dev上例中通过设置spring的配置项来配置系统的运行环境.profiles.active在application.properties配置文件中。这里配置了dev开发环境。(2)IDEA编译器指定项目启动环境。一般IDEA启动时,直接在IDEA的Run/debugConfiguration页面配置项目启动环境,如下图。在项目调试运行时,IDEA编译器可以通过三个参数设置启动方式:VMoptions、Programarguments、Activeprofiles。(3)命令行启动指定项目环境在命令行通过java-jar命令启动项目时,需要指定启动环境如下:java-jarxxx.jar--spring.profiles.active=dev如上所示,程序打包后,可以在命令行使用java–jar启动,并设置启动参数spring.profiles.active=dev,默认配置开发环境。application-{profile}.properties中配置完成后,启动项目时,可以在系统启动日志中看到加载了哪个环境配置文件,如下图:在上面的启动日志中,可以看到系统当前状态dev开发环境已启动。如果实现了相关的数据库测试方法,就可以验证相应的数据库操作是否生效。最后介绍了SpringBoot多环境的配置。SpringBoot多环境配置是一个非常基础和重要的功能,也是SpringCloud配置中心的基础配置。
