【问题标题】:Mongodb always start with embedded mode in spring bootMongoDB在spring boot中总是以嵌入式模式启动
【发布时间】:2020-04-07 16:26:11
【问题描述】:

我的 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

【问题讨论】:

  • 你能分享你的代码吗?似乎everyting设置正确。您创建新项目 + 添加您的 pom.xml / gradle 并调试。

标签: java mongodb spring-boot spring-data


【解决方案1】:

您在 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;
}

【讨论】:

    猜你喜欢
    • 2018-10-09
    • 2016-08-19
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 2018-07-12
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多