在Spring Boot中配置类似H2数据库的MongoDB的内存嵌入式数据库,可以按照以下步骤进行:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=mydatabase
这里配置了MongoDB的主机名、端口和数据库名称。
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection = "users")
public class User {
@Id
private String id;
private String name;
private int age;
// 省略getter和setter方法
}
import org.springframework.data.mongodb.repository.MongoRepository;
public interface UserRepository extends MongoRepository<User, String> {
// 可以在这里定义自定义的查询方法
}
de.flapdoodle.embed.mongo
库来实现内存嵌入式MongoDB的使用。首先,添加以下依赖项到项目的pom.xml文件中:
<dependency>
<groupId>de.flapdoodle.embed</groupId>
<artifactId>de.flapdoodle.embed.mongo</artifactId>
<scope>test</scope>
</dependency>
然后,在测试类中使用@EmbeddedMongo
注解来启动内存嵌入式MongoDB,并在测试方法中进行数据访问操作。
import de.flapdoodle.embed.mongo.MongodExecutable;
import de.flapdoodle.embed.mongo.MongodProcess;
import de.flapdoodle.embed.mongo.MongodStarter;
import de.flapdoodle.embed.mongo.config.MongodConfigBuilder;
import de.flapdoodle.embed.mongo.distribution.Version;
import de.flapdoodle.embed.process.runtime.Network;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
@SpringJUnitConfig
@SpringBootTest
public class UserRepositoryTest {
private static MongodExecutable mongodExecutable;
private static MongodProcess mongodProcess;
@Autowired
private UserRepository userRepository;
@BeforeAll
public static void setUp() throws Exception {
MongodStarter starter = MongodStarter.getDefaultInstance();
mongodExecutable = starter.prepare(new MongodConfigBuilder()
.version(Version.Main.PRODUCTION)
.net(new Net("localhost", 12345, Network.localhostIsIPv6()))
.build());
mongodProcess = mongodExecutable.start();
}
@AfterAll
public static void tearDown() throws Exception {
mongodProcess.stop();
mongodExecutable.stop();
}
@Test
public void testSaveUser() {
User user = new User();
user.setName("John");
user.setAge(30);
userRepository.save(user);
// 断言保存成功
assertNotNull(user.getId());
}
}
这样,就可以在Spring Boot中配置类似H2数据库的MongoDB的内存嵌入式数据库了。在实际开发中,可以根据具体需求配置其他MongoDB相关的属性,如认证、连接池等。
领取专属 10元无门槛券
手把手带您无忧上云