अब यह संभव है देखें इसे .
अगला कोड इसे लागू करने के लिए मेरा समाधान दिखाता है।
public class MongoInMemory {
private int port;
private String host;
private MongodProcess process = null;
public MongoInMemory(int port, String host){
this.port = port;
this.host = host;
}
@PostConstruct
public void init() throws IOException {
Storage storage = new Storage(
System.getProperty("user.home") + "/.ttraining-storage", null, 0);
IRuntimeConfig runtimeConfig = new RuntimeConfigBuilder()
.defaults(Command.MongoD)
.artifactStore(new ExtractedArtifactStoreBuilder()
.defaults(Command.MongoD)
.download(new DownloadConfigBuilder()
.defaultsForCommand(Command.MongoD).build())
.executableNaming(new UserTempNaming()))
.build();
IMongodConfig mongodConfig = new MongodConfigBuilder()
.version(Version.Main.PRODUCTION)
.net(new Net(host, port, false))
.replication(storage)
.build();
MongodStarter runtime = MongodStarter.getInstance(runtimeConfig);
process = runtime.prepare(mongodConfig).start();
}
@PreDestroy
public void stop(){
process.stop();
}
}
कॉन्फ़िगरेशन क्लास में इसे बीन के रूप में परिभाषित करें
@Bean
public MongoInMemory mongoInMemory(
@Value("${spring.data.mongodb.port}") int port,
@Value("${spring.data.mongodb.host}") String host) {
return new MongoInMemory(port, host)
}
आखिरकार, अपने प्रवेश बिंदु में एम्बेडेड मोंगोडब ऑटोकॉन्फ़िगरेशन को हटा दें
@SpringBootApplication(exclude = EmbeddedMongoAutoConfiguration.class)
PS :निर्भरता से निकालें cz.jirutka.spring:embedmongo-spring
पीएसएस :स्प्रिंग-बूट 2.0.0 पर परीक्षण किया गया। रिलीज
PSSS :इसके अलावा आप application.properties में एक संपत्ति के रूप में पथ को परिभाषित कर सकते हैं और इसे कंस्ट्रक्टर में भी परिभाषित कर सकते हैं