Springboot常见报错Error creating bean。
Error creating bean
第一种:没有创建Mapper成功导致。
错误提示中显示的多是xxController 没有注入成功。实际上多是Mapper没有注入成功,导致service和controller失败的,根源在mapper。
所以百度搜索最多的原因是没有没有指定Controller,mapper等的扫描包。即没给Mapper类加@Repository注解。
或者Service类没有加@Service注解。或者MapperScan注解等。
还有的问题是没有启动Mysql服务,导致mapper没有创建,然后间接导致Service,Controller没有创建。
第二种:配置文件的问题。
这个可能是配置文件的内容写错了。也有可能别的原因导致配置文件没有被读取到。我遇到了第二个原因
我的是工程编译后配置文件缺失没有生成。
正常情况下target目录classes编译构建后,会生成配置文件,如下:
但是我的缺失了,导致一直出现error creating bean。 但是为什么缺失??
我的问题是使用的idea,在当前的project 下创建了多个模块,这些模块就成了这个原始project 的子模块。当要单独运行这个原始project模块时,就没有生成这个配置文件了。
原因是:pom .xml 多了几个标签:
1,
2,
尤其是第二个,一定要删掉,重新使用maven的clean,然后build,再运行就生成了配置文件了。
参考:https://blog.csdn.net/qq_45601580/article/details/109459853
当时遇到这个问题时不了解Maven的父子模块的概念,父模块是pom类型后不会被编译打包的,只是做包的版本的控制。
第三种:包路径错误
这是一个多模块下产生的问题。遇到时看到了Error creating bean ,就去排除上面的两个原因。都用过了,完全没问题,还是报这个错误,一度非常绝望。只能用mvn clean,mvn install 来回捣鼓。
始终报两个warning:
1参考:https://blog.csdn.net/qq_37844454/article/details/115459733 解决了这两个warning。
2然后又报错:Could not resolve dependencies,Failed to collect dependencies
参考:https://blog.csdn.net/single_0910/article/details/120673729
又解决了这个错误。然后install 后终于不报错了。怀着激动的心情再次启动服务。
但是,Error creating bean 它又来了,又来了。要崩溃了,另外这中间用idea的invalidate cache restart 了n次。结果都是没用的。
3,曙光展现:
既然和Mapper类有关,再去看看吧,看来看去没问题啊。去看看mapper对应的xml
发现端倪:xml的namespace 是类似下面的飘红的。
看来问题在这了。但为啥爆红,去问百度,无解。
回到idea 继续看,突然发现两个服务模块的包路径居然是一样的,最后的名字都是order了,应该是像下面不同的名字才对。至于怎么会变成一样的名字的,那是另一个故事了,不写了。把名字改回vod就解决了,上面解决过程中的几个报错都不是根源,其实也是这个问题导致才出现的。
更多推荐
所有评论(0)