繁体   English   中英

如何将 application.properties 与 application-default.properties 合并并包含在 Spring Boot >2.4 的其他测试配置文件中

[英]How to merge application.properties with application-default.properties and include in other test profiles with Spring Boot >2.4

我们希望在运行测试时将src/main/resources/application.properties与其他默认属性合并,而这些默认属性又应包含在通过 Spring 引导应用程序中的特定配置文件激活的其他(测试)属性文件中。

直到 Spring Boot 2.4 之前,通过在src/test/resources/application-default.properties中包含所有常见的测试属性来保持干燥,这工作得很好。 然后这些被 Spring [ 1 ] 自动与来自src/main/resources/application.properties的那些合并。 这使我们能够拥有自己的一组默认属性,而无需测试来指定@ActiveProfiles("default")

然后其他(测试)配置文件可以拥有自己的 application-<profile>.properties 和spring.profiles.include=default ,然后进一步扩展默认值。

使用 Spring Boot 2.4 我正在努力应对新的“规则”:

  • 我无法再从 application-<profile>.properties 加载 application-default.properties,因为spring.profiles.include在非特定于配置文件的文档中不再允许 [ 2 ]。

  • 我不想介绍src/test/resources/application.properties因为我不想重复src/main/resources/application.properties中的所有内容。 此外,我不想在应用程序的属性中加载任何激活任何与测试相关的配置文件。

看起来一种解决方案可能是将spring.profiles.include=default显式添加到src/main/resources/application.properties以强制应用程序包含具有默认属性的属性文件,这在运行实际应用程序,但在运行测试时考虑src/test/resources/application-default.properties

这是通往 go 的方法,还是有更聪明的解决方案来解决这个问题,并且仍然保持属性没有冗余?

spring.profiles.active=dev

在 application.properties 文件中添加此配置

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM