首页 > 解决方案 > MongoDB在spring boot中总是以嵌入式模式启动

问题描述

我的 pom 中有以下内容,我只希望在我的单元测试中嵌入 mongo db。

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

但即使我以本地模式启动 Spring STS,mongo db 总是以嵌入模式开始,我无法使用 db 客户端连接到它。

对于本地开发测试,我希望连接到我在 application-local.yml 中提到的 27017 后运行的本地数据库,如下所示,

spring:
  data:
    mongodb:
      uri: mongodb://localhost:27017/mydb

这就是我的 MongoConfig 类的样子,

@Configuration
@EnableMongoAuditing
public class MongoConfig {

    private final MongoProperties mongoProperties;

    public MongoConfig(MongoProperties mongoProperties) {
        super();
        this.mongoProperties = mongoProperties;
    }

    //Other bean initialization methods
}

主类只有@SpringBootApplication

标签: javamongodbspring-bootspring-data

解决方案


您在 pom.xml 文件中添加以下依赖项:

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

然后在 application.properties 文件中添加以下代码:

spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=db_name

你写你的模型类:

@Data
@Document(collection = "customer")
public class Customer 
{
  @Id
  private String id;

  private String name;
  private String mobile;
}

推荐阅读