gpt4 book ai didi

spring - 当事件配置文件为 "test"时使用嵌入式 MongoDB

转载 作者:可可西里 更新时间:2023-11-01 09:16:21 26 4
gpt4 key购买 nike

我有

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

在我的 pom.xml 中,因此我的 Spring Boot 应用程序会在应用程序启动时尝试连接到本地主机上的 MongoDB。

我也有

<dependency>
<groupId>de.flapdoodle.embed</groupId>
<artifactId>de.flapdoodle.embed.mongo</artifactId>
<scope>test</scope>
</dependency>

因此,当我运行单元测试时,会使用嵌入式 MongoDb。

出于集成测试的目的,如果应用程序以“测试”事件配置文件启动,我还想使用嵌入式 MongoDB。

如此有效,我想删除 <scope>test</scope>来自嵌入依赖项,并在事件配置文件为“测试”时使用嵌入版本。

我怎样才能做到这一点?

最佳答案

您正在寻找的解决方案很可能是添加嵌入式 mongo 数据库的配置排除。尝试按照以下步骤操作:

  1. 假设默认配置文件用于开发目的,因此您想在其中运行嵌入式 mongo。 EmbeddedMongoAutoConfiguration 是负责配置嵌入式mongo 数据库的类。它在嵌入式 mongo 类位于类路径上时运行,因此只需按照您指出的那样删除测试范围
  2. 为生产、docker 或任何适合您的内容创建配置文件,并确保在此配置文件中的 yml(或属性文件)中添加以下条目:

    spring.autoconfigure.exclude: org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration

  3. 请记住,嵌入式 mongo 现在位于您的类路径中,这对于生产环境而言可能是不需要的,因此您可能还想配置 maven 以将其排除在某些 maven 配置文件中。

关于spring - 当事件配置文件为 "test"时使用嵌入式 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45032261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com