企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 一、配置文件规划 我们开发的服务通常会部署在不同的环境中,例如开发环境、测试环境,生产环境等,而不同环境需要不同的配置。最典型的场景就是在不同的环境下需要连接不同的数据库,需要使用不同的数据库配置。我们期待实现的配置效果是: * 减少配置修改次数 * 方便环境配置切换 Spring Boot 默认的配置文件是 application.properties(或yml)。那么如何实现不同的环境使用不同的配置文件呢?一个比较好的实践是为不同的环境定义不同的配置文件,如下所示: ![](https://box.kancloud.cn/08ca13216aa4a6160fdccd6507598b1b_329x163.png) 全局配置文件:application.yml 开发环境配置文件:application-dev.yml 测试环境配置文件:application-test.yml 生产环境配置文件:application-prod.yml ## 二、切换环境的方式 ### 1\. 通过配置application.yml application.yml是默认使用的配置文件,在其中通过spring.profiles.active设置使用哪一个配置文件,下面代码表示使用application-prod.yml配置,如果application-prod.yml和application.yml配置了相同的配置,比如都配置了运行端口,那application-prod.yml的优先级更高 ~~~ #需要使用的配置文件 spring: profiles: active: prod ~~~ ## 2\. VM options、Program arguments、Active Profile ![](https://img.kancloud.cn/c2/0f/c20fa22fb6467a5c817dc98bbd987a70_971x218.png) VM options设置启动参数 -Dspring.profiles.active=prod Program arguments设置 --spring.profiles.active=prod Active Profile 设置 prod **这三个参数不要一起设置,会引起冲突,选一种即可**,如下图 ![](https://box.kancloud.cn/2e05093186863f8664983a7b4a247dd8_921x617.png) ## 3.命令行方式 ![](https://img.kancloud.cn/33/b1/33b145b234e0617e55c52faee7f756a8_682x624.png) 将项目打成jar包,在jar包的目录下打开命令行,使用如下命令启动: ![](https://img.kancloud.cn/35/18/351864f0fe426cc5cb8eb207e59ad312_1305x415.png) ![](https://img.kancloud.cn/39/6e/396e2b8c5b1b41192819650fd8b02d2e_656x340.png) ~~~ java -jar spring-boot-profile.jar --spring.profiles.active=prod ~~~ 关于 Spring Profiles 更多信息可以参见:Spring Profiles。 [https://www.baeldung.com/spring-profiles](https://www.baeldung.com/spring-profiles)