总结一下在一次spring boot 项目启动中遇到的问题,主要原因是启动时提示在加载dataSource defined in class path resource org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class时失败。
该项目是一个网关项目,只配置了一个redis数据源,且最近一段时间未改动过任何配置(环境配置、pom均为改动)。所以突然出现启动失败,感觉很困惑!开始怀疑测试环境问题(测试环境使用的docker,不是很稳定)后来本地启动、预发环境启动master分支同样问题,排除docker环境因素!
仔细看日志,加载dataSource报连接mongodb失败,也就是spring boot在启动时去加载dataSource,然后从配置文件中去加载连接mongodb的配置没有找到,导致连接失败。
2020-04-10 09:47:47,567 [localhost-startStop-1] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 3576 ms
2020-04-10 09:47:48,107 [localhost-startStop-1] INFO org.mongodb.driver.cluster - Cluster created with settings {hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
2020-04-10 09:47:48,129 [cluster-ClusterId{value='5e8fd0441919428f62237562', description='null'}-localhost:27017] INFO org.mongodb.driver.cluster 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 (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.AbstractPlain

本文介绍了在Spring Boot项目启动时遇到的数据源加载失败问题,特别是当项目试图加载MongoDB配置但实际并不需要的情况。通过在启动类上排除Mongo的相关配置,并逐步调试,最终发现是由于依赖的SNAPSHOT版本不稳定导致的启动失败。解决方案是在启动注解中排除MongoAutoConfiguration和MongoDataAutoConfiguration,并包含DataSourceAutoConfiguration。
最低0.47元/天 解锁文章
4572

被折叠的 条评论
为什么被折叠?



