springboot系列:springboot项目在多环境下配置
任何一种技术的出现,都是来解决特定的问题的!
问题场景:
在一个项目中总会有不同的环境,开发环境、测试环境、生产环境、各个服务器的部署环境,不同的环境会有不同的配置,比如数据库的配置就不同、redis的配置就不同等,现在需要做到:不用每次换环境的时候,都去修改这些配置。
本人知道的解决方案方式有三种:
- 修改配置文件
- 命令启动服务,命令中带有环境的参数
- 第一种的优化版(常用)
解决方式:
方式一:修改配置文件
这样,springboot项目在启动服务的时候会有先读取application.properties
里面的内容,当读取到spring.profiles.active
时,会调取对应的参数后面的值的application_xx.properties
,上图中,启动服务时,会调取application_local.properties
文件,对应不同的环境,配置不同的文件,例如:application_dev.properties
,application_test.properties
方式二:命令启动服务,命令中带有环境的参数
注意:该方式可以没有application.properties文件
- cmd进入到项目的目录下,进行maven打包,执行命令:mav install,会在target目录下生成项目的jar包。
- 进入target目录,执行命令:java -jar 生成的jar包 --spring.profiles.active=local
项目会调用application_dev.properties
的配置文件。同理,若是测试环境,只需将local该成test
方式三:第一种的优化版(常用)