当前位置: 首页 > news >正文

SpringBoot不同环境加载不同配置文件(dev,sit,uat)

目录

  • 一、springboot的profile配置
    • profile多配置文件
  • 二、maven的profiles策略

我们在使用spring的时候,一般都会有不同的环境需要部署:开发环境、测试环境和验收环境,而不同的环境则会有不同的配置,比如数据库ip。解决这个问题,我所熟悉的有两种策略:

  • springboot的profile参数配置
  • pom文件的resource & profile配置

DEV环境:DEV顾名思义就是develop,即代码开发的环境。
SIT环境:System Integration Test系统集成测试,开发人员自己测试流程是否走通。
UAT环境:User Acceptance Test用户验收测试,由专门的测试人员验证,验收完成才能上生产环境。

一、springboot的profile配置

Spring Profiles 允许用户根据环境配置来读取不同的配置文件(dev,sit,uat 等),可以通过激活、指定参数等方式快速切换环境。

profile多配置文件

在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:

application.properties:主配置文件
application-dev.properties:开发环境
application-sit.properties:测试环境
application-uat.properties:验收环境
至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profiles.active属性来设置,其值对应{profile}值。
有人会提问为啥要这样命名
在这里插入图片描述
application-dev.properties:开发环境

server.port=9001

application-sit.properties:测试环境

server.port=9002

application-uat.properties:验收环境

server.port=9003

application.properties:主配置文件

spring.profiles.active=sit

测试成功
在这里插入图片描述

二、maven的profiles策略

pom文件配置

     <profiles><profile><!-- 开发环境 --><id>dev</id><properties><profiles.active>dev</profiles.active></properties></profile><profile><!-- 测试环境 --><id>sit</id><properties><profiles.active>sit</profiles.active></properties><activation><activeByDefault>true</activeByDefault></activation></profile><profile><!-- 验收环境 --><id>uat</id><properties><profiles.active>uat</profiles.active></properties></profile></profiles>

这里默认sit配置
会多出来一个Profiles
在这里插入图片描述
多环境配置
application-dev.properties:开发环境

server.port=9001

application-sit.properties:测试环境

server.port=9002

application-uat.properties:验收环境

server.port=9003

application.properties:主配置文件
注意这里的profiles.active 要和pom文件的对应上

spring.profiles.active=@profiles.active@

测试成功(记得切换Profiles的时候,刷新一下,不然不会生效)
在这里插入图片描述

http://www.lryc.cn/news/225943.html

相关文章:

  • 2023.11.8 hadoop学习-概述,hdfs dfs的shell命令
  • Azure 机器学习 - 使用自动化机器学习训练计算机视觉模型的数据架构
  • STM32F4X SDIO(九) 例程讲解-SD卡擦除、读写
  • 【机器学习范式】监督学习,无监督学习,强化学习, 半监督学习,自监督学习,迁移学习,对比分析+详解与示例代码
  • JUC包下面的四大天王+线程池部分知识
  • AGV系统控制位置管理功能
  • JavaScript从入门到精通系列第三十三篇:详解正则表达式语法(二)
  • 由于找不到 d3dx9_43.dll,无法继续执行代码。重新安装程序可能会解决此问题
  • AI全栈大模型工程师(二十一)LangChain和SemanticKernel怎么选
  • npm install 报错 chromedriver 安装失败的解决办法
  • C语言--每日五道选择题--Day6
  • element-ui 封装 表格
  • 数据的使用、表关系的创建、Django框架的请求生命周期流程图
  • Python基础教程:类--继承和方法的重写
  • Three.js提供了多种类型的灯光
  • 精通Nginx(10)-负载均衡
  • Hls学习(一)
  • Maven打包引入本地依赖包
  • Docker常用命令及部署微服务项目
  • okhttp添加公共参数
  • 基于SpringBoot的SSMP整合案例(开启日志与分页查询条件查询功能实现)
  • android studio 修改图标
  • pytorch学习之第二课之预测温度
  • 基于Mahony互补滤波的IMU数据优化_学习笔记整理
  • c语言实现哈夫曼编码
  • Vuex:模块化Module :VCA模式
  • 【uni-app + uView】CountryCodePicker 国家区号组件
  • 思科对路由器的配置
  • 实战Leetcode(三)
  • 【PTE-day05 宽字节注入】