Spring boot项目启动自动加载mongo配置失败导致启动失败问题

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

总结一下在一次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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值