springboot单体项目拆分为微服务模式后报错:dataSource or dataSourceClassName or jdbcUrl is required.

问题现象:

今天在项目中遇到一个问题:组长让我把一个springboot单体项目简单的拆分为微服务项目;

我将项目简单的拆分为:

1.controller+config模块

2.数据model+dao/mapper持久层模块

之后;运行项目却发生了如下报错:

springboot单体项目拆分为微服务模式后报错:dataSource or dataSourceClassName or jdbcUrl is required._第1张图片

问题分析:

通过查看报错信息:

java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required.

可以初步得知:是数据源dataSource出问题了,系统找不到数据源从而报错.

于是就去查看自己在拆分为微服务项目之后,下面这些地方是否有配置错误:

1.数据model+dao/mapper持久层模块中的mapper接口和Mapper.xml文件中对应的文件路径是否有错误.

2.应用mapper接口方法的controller+config模块中导入的包路径是否改名或者正确路径错误.

3.父子模块的pom.xml是否有配置层级联系.

4.controller+config模块的pom.xml是否有导入需要调用的数据model+dao/mapper持久层模块的依赖包.

检查之后发现都没有问题,但就是依旧是报这个错误.

最后通过这个报错信息我才知道问题所在:

springboot单体项目拆分为微服务模式后报错:dataSource or dataSourceClassName or jdbcUrl is required._第2张图片

这里提到了:HikariPool-1 - dataSource or dataSourceClassName or jdbcUrl is required.

关键字是:

HikariPool-1

通过查询资料我发现:

原来我的项目配置文件中使用的是springboot2的数据源:Hikari

通过查看我的application.properties配置文件可以发现,我的数据源配置如下:

我估计这样配置是不规范的,在单体项目中或许不会有问题(系统可能会自动搜寻当前项目中的数据源配置);但不是单体项目的时候就会搜寻不到了,

因此需要将这里的数据源配置改为Hikari的数据源配置方式.


解决方法:

将配置文件中关于数据源的配置修改为:

结果:运行成功

springboot单体项目拆分为微服务模式后报错:dataSource or dataSourceClassName or jdbcUrl is required._第3张图片

你可能感兴趣的:(Springboot,微服务,Hikari数据源报错)