Попытка использовать встроенный mongodb для моего весеннего профиля local
. Вот конфигурация для MongoTemplate
@Configuration
@Profile("local")
public class LocalMongoConfig {
private static final String MONGO_DB_URL = "localhost";
private static final String MONGO_DB_NAME = "embeded_db";
@Bean
@Primary
public MongoTemplate mongoTemplate() throws IOException {
EmbeddedMongoFactoryBean mongo = new EmbeddedMongoFactoryBean();
mongo.setBindIp(MONGO_DB_URL);
MongoClient mongoClient = mongo.getObject();
MongoTemplate mongoTemplate = new MongoTemplate(mongoClient, MONGO_DB_NAME);
return mongoTemplate;
}
}
И это application-local.yml
spring:
data:
mongodb:
uri: mongodb://127.0.0.1:27017/embeded_db
Но при запуске приложения из журналов я вижу, что встроенный mongodb запускается через произвольные порты.
13:53:49.849 [Thread-7] INFO org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongo - 2020-03-20T13:53:49.849+0800 I NETWORK [thread1] waiting for connections on port 51564
Затем я получаю следующее сообщение об ошибке: connection refused
, что правильно, поскольку он пытается подключиться к другому порту (27017)
13:53:50.953 [restartedMain] INFO org.mongodb.driver.cluster - Cluster description not yet available. Waiting for 30000 ms before timing out
13:53:51.639 [cluster-ClusterId{value='5e745a6e973cbd4bd45d073e', description='null'}-127.0.0.1:27017] INFO org.mongodb.driver.cluster - Exception in monitor thread while connecting to server 127.0.0.1:27017
com.mongodb.MongoSocketOpenException: Exception opening socket
at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:67)
at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:126)
at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.ConnectException: Connection refused: connect
Как я могу убедиться, что mongodb.driver
использует встроенный mongodb?