前提:项目是一个大数据的Java项目,数据库分多个,。这次是要用Boot整合Batch框架
spring-starter-batch的官网地址:https://spring.io/batch
问题源头:SpringBoot整合Batch框架,但是引入的过程中,报以下错误(Database Type not found for product name: [DM DBMS])
分析:因为在整合框架之前,SpringBoot项目连接达梦数据库是正常运行的,而且也没对yml文件改动,所以可以排除一些低级错误。然后开始分析要整合的框架Batch
开始分析源码,Maven地址:https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-batch
顺带说一下,这里是有一个雷的,spring-starter-batch这个Maven包名下载的Jar包和Maven中对应搜索的地址是不同的
在POM文件中的引入是
但是在maven官方去搜的话,搜出来的spring-boot-starter-batch则是这个东西,并不是我们需要的Jar包
通过查看这个的Jar包源文件,只有一个META-INF文件夹,并没有看到其它的源文件
再对比实际下载来的jar包源码,发现却是另一个名字,这才是我们需要引用的jar
然后用IDEA打开,去查看它的源码,然后找到了数据库的枚举类
但是在这里的源码枚举类可以看到,是没有达梦数据库的匹配枚举的。(这就犯难了,写写写,还写锤子写,还整合个锤子整合)
然后开启了各种查询模式,最后在stackoverflow中看到了类似的问题,给出的解析是这样的
最后是发现Batch官方是提供一个用户自定义的一种方式去解决类似的问题,那么就开始捣鼓捣鼓吧
如上图所说,如果没有对应的枚举,可以选择一个较为匹配的数据类型,去自定义自己需要的东西,在这里我是选择了H2
然后开始编写自定义需要的类
根据H2作匹配
然后其它的配置就不需要改动,改好源码,运行
经过几天的折腾,终于搞定。果然stackoverflow才是YYDS!!!最后附送这句话