问题出现:
在启动spring boot的项目时报错:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘quartzDataSourceInitializer’: Invocation of init method failed; nested exception is java.lang.AbstractMethodError: com.zaxxer.hikari.metrics.micrometer.MicrometerMetricsTrackerFactory.create(Ljava/lang/String;Lcom/zaxxer/hikari/metrics/PoolStats;)Lcom/zaxxer/hikari/metrics/MetricsTracker;
公司用的是2.1.4 RELEASE版本
这个看起来就是MetricsTrackerFactory 接口 和 MicrometerMetricsTrackerFactory实现类版本不匹配
为什么会这样想呢,因为一般来说,公司搭建好的脚手架内部是不可能出现版本冲突的情况的。这种情况的产生一般是由于自己引入的包和脚手架的包发生了冲突。
因为使用mvn dependency:tree>tree.txt命令打印出整个依赖。
打开生成的tree.txt在其中搜索发现,对于hikari依赖出现两个版本:
上面那个版本是我自己引入的,因此解决方法就是在这个包中剔除Hikari CP-java7即可。
<dependency>
<groupId>com.nio.swc.sas</groupId>
<artifactId>caduceus</artifactId>
<version>${caduceus.version}</version>
<exclusions>
<exclusion>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP-java7</artifactId>
</exclusion>
</exclusions>
</dependency>