SpringBoot多环境(开发、生产和测试环境)配置文件

我们的项目在开发环境、生产环境,不同的环境下会有不同的配置。比如访问服务的端口,或者数据库的配置。如果每次切换环境都去直接修改这些配置的值,不仅麻烦而且很容易出错。我们如何才能根据环境动态的选择配置文件呢?

如图是我项目中的3个配置文件。其中,记录在application.yml中的配置项在任何环境下都会生效,记录在application-dev.yml中的配置项只在dev(开发)环境下生效,记录在application-prod.yml中的配置项只在prod(生产)环境下生效。所有的环境配置文件前面的application-是固定规范,后面的部分是自定义的。多环境的配置文件可以有多个,不只这两个。
在这里插入图片描述
那么如何启动某一环境下的配置文件?

方法一 修改配置文件

修改application.yml中的配置项,具体内容如下图
在这里插入图片描述
这样,spring.profiles.active: dev在启动服务时就会调用application-dev.yml这个配置文件。同理,若spring.profiles.active: prod,那么在启动服务时,服务器就会调用application-prod.yml这个配置文件。
此外,我们不需要去关心这些环境配置文件是位于哪一个目录下面的,只要是在resources下面的都可以。只要遵守application-开头的这个约定,springboot就会自动寻找这些环境的配置文件。

方法二 命令启动服务,命令中带参数指定配置文件

此方式不需要application.yml文件中的spring.profiles.active配置项
第一步: idea中在maven窗口点击 m 图标,在弹出的命令行窗口输入命令mvn clean package,控制台出现BUILD SUCCESS说明打包成功。(也可采用其他的maven打包方式,本文就不一一介绍了)。打包完成后会在target目录下生成项目的jar包。
在这里插入图片描述
打包好的这个jar包我们通常称它为uber jar——超级jar包,这个jar包里面内置了tomcat服务器。不同于过去的java项目打成war包,war包需要依赖于外部tomcat服务器。

第二步: 生产环境下,通常我们就不会再使用开发工具来启动项目,而是通过java命令来启动jar包。
进入target目录,执行命令:java -jar 项目的jar包 --spring.profiles.active=dev
项目就会调用application-dev.yml配置文件,即以开发环境的配置要求启动服务。同理,若是生产环境,只需将dev改为prod即可。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/xfx_1994/article/details/104210873