java - 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
解决方案
您在 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;
}
推荐阅读
- c++ - 如何让 GCC 使用不同的标准库?
- java - ffmpeg unbale 在某些情况下初始化线程
- makefile - 如何使用make并行构建特定的多个目标?
- java - 如何读取 csv 文本文件,以便将 csv 文件中的特定值与用户输入进行比较?
- java - NavigationDrawer 不能强制转换为接口
- react-native - 当当前选项卡在反应导航5中处于活动状态时如何在底部选项卡顶部添加一行
- vmware - 从 vSphere 客户端获取数据
- javascript - 如何在 Puppeteer 中双击
- flutter - 在 Flutter 中禁用“语义”系统?
- c# - 仅设置 ASP .NET 站点的 ONE 路由的 Windows 身份验证