Druid连接池初始化失败主因是依赖缺失或版本冲突,非Spring项目需显式引入com.alibaba:druid(≥1.2.20),Spring Boot优先用druid-spring-boot-starter并配置spring.datasource.type;参数错配致卡死,maxTotal替代maxActive,maxWait须设正整数,testOnBorrow慎用;Hikari默认覆盖Druid,需显式指定type或加@Primary;监控页404因Servlet注册不当、allow未配置或Security拦截,须正确注册StatViewServlet并放行路径。
Druid连接池初始化失败:
或
常见于 Maven 依赖没对齐或版本冲突。Druid 不是 JDK 自带组件,必须显式引入;但很多人只加了
,却在非 Spring 环境下手动 new DruidDataSource,结果类加载器找不到核心类。
纯 Java(非 Spring)项目,必须添加
依赖,且版本建议选
及以上(修复了 JDK 17+ 的部分反射问题)
Spring Boot 2.7+ 项目,优先用
,它会自动配置
,但需确认
没被误设为
如果用了 Shading(如打包进 fat jar),检查
是否意外排除了
相关包路径
配置项写错导致连接卡死:
、
、
的实际影响
这些参数名字看着像“限制”,其实控制的是阻塞行为和健康检查时机,写错直接导致应用启动 hang 住、或运行中大量线程 WAITING 在
上。
(已废弃,应改用
):旧版 Druid 中若设为 0,池会无限创建连接,很快耗尽 DB 连接数;新版请统一用
默认 -1(无限等待),线上必须设为正整数(如
),否则一个慢查询拖垮整个服务
设为
时,每次取连接都执行
(如
),高并发下 DB 压力翻倍;生产环境更推荐
+
Spring Boot 中
不生效:被 Hikari 覆盖
Spring Boot 2.x 默认内嵌 HikariCP,即使你写了
,只要
存在,Boot 仍会优先创建 Hikari 实例——你的 Bean 被忽略,日志里也几乎不报错。
确认
中是否含
检查是否有其他 starter(如
)间接拉入 Hikari 依赖;可执行
验证
若手动定义
,务必加上
注解,并确保该类不在
范围外
监控页面 404 或白屏:
配置陷阱
Druid 内置的监控页(
)不是开箱即用,URL 映射、过滤器顺序、权限控制三者稍有偏差就返回 404 或空响应。
Eclipse导入Android或其他的JAVA项目的正确方法 WORD版
本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
下载
立即学习
“
Java免费学习笔记(深入)
”;
Servlet 注册必须用
(Spring Boot 1.x)或
(2.x+),不能只靠
—— 后者在某些容器(如 Undertow)下不生效
参数默认为空,意味着拒绝所有 IP;需显式设为
,否则连本地都打不开
若项目用了 Spring Security,需放行
路径,且确保
在 SecurityFilterChain 之前注册
Druid 的配置自由度高,但每个开关背后都有明确的线程模型和资源生命周期约束。最容易被忽略的是连接泄漏检测(
已废弃,必须用
+
)和日志级别——
开启后,慢 SQL 日志才真正可用。
ClassNotFoundExceptionNoClassDefFoundErrordruid-spring-boot-startercom.alibaba:druid1.2.20druid-spring-boot-starterDruidDataSourcespring.datasource.typecom.zaxxer.hikari.HikariDataSourceMETA-INF/MANIFEST.MFdruidmaxActivemaxWaittestOnBorrowgetConnection()maxActivemaxTotalmaxTotalmaxWait3000testOnBorrowtruevalidationQuerySELECT 1testWhileIdletimeBetweenEvictionRunsMillisDruidDataSource@Bean DruidDataSourcespring.datasource.urlapplication.ymlspring.datasource.type: com.alibaba.druid.pool.DruidDataSourcemybatis-spring-boot-startermvn dependency:tree | grep hikari@Bean@Primary@ComponentScanStatViewServlet/druidServletRegistrationBeanServletWebServerFactoryCustomizer@ServletComponentScanallowallow: 127.0.0.1,192.168.1.0/24/druid/**DruidWebStatFilterremoveAbandonedOnBorrowremoveAbandonedOnMaintenanceremoveAbandonedTimeoutMillisdruid.stat.mergeSql=true