【问题定位】
在druid-1.0.1x版本中DruidDataSource新增了MBeanRegistration接口的实现
但是在druid-1.0.9中没有对该接口的实现
DruidDataSource在构造时会调用init方法初始化,其最后一步是将内部统计数据通过mbean暴露出去
由于是使用的resin,最终会调用resin提供的mbeanServer注册mbean,在注册逻辑中发现如下逻辑
(代码位于:MBeanContext.registerMBean方法)
看下1.0.14版本中DruidDataSource的preRegister实现:
直接返回null,这就是导致启动时抛出NullPointerException异常的底层原因,然而1.0.9版本中是
没有实现此接口故也就没有问题。