項目中引用了mongo驅動
<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.9.0.RELEASE</version><!--$NO-MVN-MAN-VER$--> </dependency> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.6.0</version> </dependency>
啟動時出現報錯信息
com.mongodb.MongoSocketOpenException: Exception opening socket
at com.mongodb.connection.SocketStream.open(SocketStream.java:62)
at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:126)
at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:114)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java
原因
spring boot默認會加載
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration類,
DataSourceAutoConfiguration類使用了@Configuration注解向spring注入了dataSource bean。
因為工程中沒有關於dataSource相關的配置信息,當spring創建dataSource bean因缺少相關的信息就會報錯。
例如:
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})
解決方法
同理:mongo啟動時 org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration
在Application類上增加: @EnableAutoConfiguration(exclude{MongoAutoConfiguration.class})
或啟動類上
@Configuration @SpringBootApplication(scanBasePackages = "com.test",exclude={MongoAutoConfiguration.class}) public class WebApplication extends SpringBootServletInitializer {
完