最近在做某Springboot聚合工程案例时出现以下提示信息:
The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
该提示与jdbc的jar包版本有关:
- mysql-connector-java 5 的驱动类为com.mysql.jdbc.Driver
- mysql-connector-java 6以上驱动类为com.mysql.cj.jdbc.Driver
- jar包如果为6以上,但注册驱动类使用的是版本5的字符串,将会出现提示。
问题:
Springboot依赖JDBC版本为6以下,注册驱动类的字符串也是com.mysql.jdbc.Driver仍出现提示。
聚合工程依赖关系如下:
子模块myauction-provider-user依赖于子模块myauction-mapper
myauction-mapper中的数据库依赖
myauction-mapper项目引入的jdbc包如下:
但myauction-provider-user项目引入的jdbc包如下:
这个8.0.13版本号主要是Springboot规定的,通过以下步骤可以查看
Ctrl+左键:
Ctrl+左键:
进入到spring-boot-dependencies的pom.xml可看到
<properties>
<mysql.version>8.0.13</mysql.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
<exclusions>
<exclusion>
<artifactId>protobuf-java</artifactId>
<groupId>com.google.protobuf</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencyManagement>
maven可能存在某种机制:
若某子模块(A)依赖的版本与springboot规定的不符合,那依赖A的子模块(B)的依赖版本将会重置为Springboot的pom.xml规定的。