我将 apache 元模型添加到我的项目中。
<dependency>
<groupId>org.apache.metamodel</groupId>
<artifactId>MetaModel-full</artifactId>
<version>5.0.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
mongo-java-driver 作为依赖项出现。
[INFO] | +- org.apache.metamodel:MetaModel-mongodb-mongo3:jar:5.0.0:compile
[INFO] | | +- org.apache.metamodel:MetaModel-mongodb-common:jar:5.0.0:compile
[INFO] | | \- org.mongodb:mongo-java-driver:jar:3.4.3:compile
[INFO] | +- org.apache.metamodel:MetaModel-mongodb-mongo2:jar:5.0.0:compile
Run Code Online (Sandbox Code Playgroud)
然后我看到一些日志,比如。
2018-01-16 02:33:09.467 INFO 15417 --- [ restartedMain] org.mongodb.driver.cluster : Cluster created with settings {hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
2018-01-16 02:33:09.512 DEBUG 15417 --- [ restartedMain] org.mongodb.driver.cluster : Updating cluster description to {type=UNKNOWN, servers=[{address=localhost:27017, type=UNKNOWN, state=CONNECTING}]
2018-01-16 02:33:09.521 DEBUG 15417 --- [localhost:27017] org.mongodb.driver.connection : Closing connection connectionId{localValue:1}
2018-01-16 02:33:09.525 INFO 15417 --- [localhost:27017] org.mongodb.driver.cluster : Exception in monitor thread while connecting to server localhost:27017
com.mongodb.MongoSocketOpenException: Exception opening socket
at com.mongodb.connection.SocketStream.open(SocketStream.java:63)
at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:115)
at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:113)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:57)
at com.mongodb.connection.SocketStream.open(SocketStream.java:58)
... 3 common frames omitted
2018-01-16 02:33:09.527 DEBUG 15417 --- [localhost:27017] org.mongodb.driver.cluster : Updating cluster description to {type=UNKNOWN, servers=[{address=localhost:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused (Connection refused)}}]
Run Code Online (Sandbox Code Playgroud)
当我挖掘 mongo-java-driver 的源代码时,我看到 mongo-java-driver 启动一个线程来监视默认的 mongodb 服务器。我不想排除 mongodb 驱动程序,但如何禁用 com.mongodb.connection.DefaultServerMonitor 线程。
经过进一步搜索,我意识到这是 spring-boot 自动配置问题。我的应用程序是一个 spring-boot 应用程序。spring-boot 自动配置在类路径中找到 mongos-java-driver jar 并启动 mongo-drive。
添加@EnableAutoConfiguration(exclude = {MongoAutoConfiguration.class})后,mongo-java-driver 不再启动。
| 归档时间: |
|
| 查看次数: |
4175 次 |
| 最近记录: |