【springboot test】springboot 单元测试配置文件加载顺序及覆盖关系

news2024/12/23 5:46:20

springboot test 配置文件加载顺序及覆盖关系

      • 参照目录结构:
      • 1.配置文件加载基础原则:
      • 2.application.yml主配置文件加载原则:
      • 3.application.yml中指定spring.profiles.active:xxx时,xxx的加载原则:
      • 4.使用@ActiveProfiles("yyy")时:
      • 5.其他自定义配置文件,如xxx.properties:

参照目录结构:

目录结构

1.配置文件加载基础原则:

通过任意方式指定的application-xxx.yml中会覆盖application.yml中同名配置,application.yml一般作为兜底或通用配置

2.application.yml主配置文件加载原则:

[ 实际运行的application.yml ] = [ test/resources/application.yml ] ? [ test/resources/application.yml ] : [ main/resources/application.yml ]

3.application.yml中指定spring.profiles.active:xxx时,xxx的加载原则:

[ 实际运行的application-xxx.yml ] = [ test/resources/application-xxx.yml ] ? [ test/resources/application-xxx.yml ] : [ main/resources/application-xxx.yml ]

4.使用@ActiveProfiles(“yyy”)时:

  • yyy会覆盖 application.yml中指定spring.profiles.active:xxx 指定的xxx, xxx不生效
  • application-yyy.yml加载原则同 原则3
  • yyy可与xxx一致, 原则同理

5.其他自定义配置文件,如xxx.properties:

5.1

  • 一般自定义xxx.properties有对应的xxxBean, 会用@PropertySource指定xxx.properties
  • 此时[ 实际运行的alipay.properties ] = [ test/resources/alipay.properties ] ? [ test/resources/alipay.properties ] : [ main/resources/alipay.properties ]
  • test 和 main 不会同时加载
@Data
@Component
@PropertySource(value = {"classpath:/xxx.properties"})
@ConfigurationProperties(prefix = "xxx")
public class XxxBean {...}

5.2@PropertySource(“classpath:/xxx.properties”)同时使用@TestPropertySource(“classpath:yyy.properties”)时:

  • yyy.properties和xxx.properties同时加载
  • yyy.properties优先覆盖xxx.properties同名内容
  • xxx/yyy.properties 的 main/test位置读取原则同上
@ActiveProfiles("sb")
@TestPropertySource({"classpath:yyy.properties"})
@SpringBootTest(classes = AlipayApplication.class)
@RunWith(SpringRunner.class)
public class SpringTest {...}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/535613.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么需要防雷接地,防雷接地的作用是什么

为什么需要电气接地? 您是否曾经在工作条件下使用任何电器时接触过电击?几乎每个人的答案都是肯定的,有时这些电击是轻微的,但有时会对电气和电子设备造成损坏,并可能危及生命。为防止对人的生命和电器造成任何损害&a…

网络计算模式(一)

CDN网络概念 CDN:Content Delivery Network,即内容分发网络。 其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”。使用户可以就近取得所需的内容,解决Internet网络拥挤的状况&a…

盘点十大机器人公众号

原创 | 文BFT机器人 一、机器人大讲堂 公众号定位:引领行业发展的新媒体平台 更新频率:1篇主推3篇副推/每日更新 文章内容: 1. 行业市场新动态(常作为主推) 吸引关注科技市场动态的客户群体 2. 项目、政策 吸引需…

DI93A HESG440355R3为什么电容器分为多种?只有一种电容器不行吗?

​ DI93A HESG440355R3为什么电容器分为多种?只有一种电容器不行吗? 电子产品由不同的电子元件组成,包括电容器、电感器、电阻器、线圈、发电机等,其中电容器是常见的电子元件。电容器按照类别分为多种电容器,常见的有…

Barra模型因子的构建及应用系列十之Leverage因子

一、摘要 在前期的Barra模型系列文章中,我们构建了Size因子、Beta因子、Momentum因子、Residual Volatility因子、NonLinear Size因子、Book-to-Price因子、Liquidity因子、Earning_Yeild因子和Growth因子 ,并分别创建了对应的单因子策略,其…

基于Java的医护人员排班系统设计与实现【附源码】

角色分为管理员、医生、护士 登录、注册页面: 工号、姓名、科室、密码、电话、性别、邮箱 管理员功能: 1、个人中心:个人信息、修改密码。 2、科室信息:增删改查,每个科室要有科室人员。 3、医生信息:增删改…

通过chatGPT学习:L2网络和L3网络?

下面的总结是通过chatGPT4进行的。 1、 L2网络和L3网络 L2网络和L3网络是计算机网络中的两种不同的网络类型,它们有一些不同的特点和应用场景。 L2网络,也被称为数据链路层网络, 主要是通过物理地址(MAC地址)来转发…

.Net6 导出excel使用aspose.cells23.5.0

一、测试代码 internal class Program { static void Main(string[] args) { WorkbookDesigner wb new WorkbookDesigner(new Workbook()); var style new CellsFactory().CreateStyle(); style.Borders.SetColor(C…

计算机视觉——day 92 基于跨领域协作学习的单图像去雨

基于跨领域协作学习的单图像去雨 1. Introduction3. Proposed method3.1 网络架构 4. Experiments and results4.1 数据集和指标4.3 合成图像的结果4.8 建模复杂度和运行时间 5. Conclusion 1. Introduction 深度卷积神经网络(DCNN)在图像解析任务中取得了优异的性能。然而&am…

量化投资 无套利 No-arbitrage

文章目录 量化投资 无套利 No-arbitrageState of Nature市场域 Market Span 套利 Arbitrage无套利和正线性定价规则 No-arbitrage and Positive Linear Pricing RuleImplication 1: One-price PrincipleImplication 2: PositivityImplication 3: AdditivityImplication 4: Homo…

QGIS Desktop与QGIS Server 下载安装

QGIS是一款开源的地理信息系统软件,全称为Quantum GIS。它提供了一系列强大的GIS功能,可以用于浏览、编辑、分析和处理各种地理空间信息。QGIS支持多种矢量、栅格和数据库数据格式,包括ESRI Shapefile、GeoJSON、GML、PostGIS、Oracle Spatia…

基于Kubernetes集群构建大中型企业CICD应用平台(8)--通过jenkins把从远程拉取的代码推送执行其他主机上,然后进行镜像打包并进行部署

一、配置Maven构建代码 代码拉取到Jenkins本地后,需要在Jenkins中对代码进行构建,这里需要Maven的环境,而Maven需要Java的环境,接下来需要在Jenkins中安装JDK和Maven,并且配置到Jenkins服务。 - 准备JDK、Maven压缩包…

Appuploader 常见错误及解决方法

转载:Appuploader 常见错误及解决方法 Appuploader是一款用于上传、管理和分享iOS应用的客户端工具。使用Appuploader可以让您更加便捷地管理和分享您的应用程序,同时也能够提高工作效率。本文将介绍一些常见的Appuploader错误及其解决方法。 1.登录失…

软考算法-算法篇

软考算法 一:故事背景二:分治法2.1 概念2.2 题目描述2.3 代码实现2.4 总结提升 三:回溯法3.1 概念3.2 题目描述3.3 代码实现3.3.1 TreeNode 类3.3.2 将数组处理成二叉树结构并且返回根节点3.3.3 进行搜索 3.4 总结提升 四:回溯法-…

【数据分析之道-Matplotlib(四)】Matplotlib散点图

文章目录 专栏导读1、Matplotlib散点图语法2、Matplotlib散点图设置图标大小3、Matplotlib散点图自定义点颜色4、Matplotlib散点图设置两组散点图5、Matplotlib散点图使用随机数来设置散点图6、Matplotlib散点图显示颜色条 Colormap 专栏导读 ✍ 作者简介:i阿极&…

Github Copilot Chat的规则泄露,详细分析这31条规则

GitHub Copilot 是一款由 GitHub 和 OpenAI 共同开发的人工智能编程助手。它是一种基于机器学习的代码自动完成工具,旨在帮助开发人员更高效地编写代码。 GitHub Copilot Chat是GitHub Copilot的一部分,它是一个基于人工智能的编程助手,由Op…

怎么取消只读模式?硬盘进入只读模式怎么办?

案例:电脑磁盘数据不能修改怎么办? 【今天工作的时候,我想把最近的更新的资料同步到电脑上的工作磁盘,但是发现我无法进行此操作,也不能对磁盘里的数据进行改动。有没有小伙伴知道这是怎么一回事?】 在使…

文件夹中不显示SolidWorks缩略图的解决办法

在文件夹中显示SolidWorks缩略图能帮助我们快速找到需要打开的图纸文件,但是有时候装上SolidWorks之后在文件夹中并不显示图纸文件的缩略图,解决办法如下: 1.打开SolidWorks,点击“选项—系统选项—普通”,勾选“在资…

项目采购管理

一、规划采购管理(编制采购管理计划) 记录采购决策、明确采购方法、识别潜在卖方的过程 作用:确定是否需要外部支持,如果需要,则还要决定采购什么、如何采购、采购多少、以及何时采购。 输入: 组织过程资产 合同类型:一、总价合同;二、成本补偿合同;三、工料合同 …

基于html+css的图展示75

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…