Idea中mapper注入报错问题及解决
Idea中mapper注入报错
问题描述
如下图所示,通过扫描方式的mapper在service自动注入的时候,会有校验报错。
解决办法
File-setting-Editor-Inspections-spring-Spring Core-Code-Autowiring for bean class
设置Severity:warning
apply - ok
最终效果
如下图所示,即可解决报错问题。
idea中Mapper接口无法自动注入
报"Invalid bound statement (not found) "异常
首先声明Mapper接口时,could not autowire,是因为idea的拼写检查,并不影响执行
Setting->Inspections->Spring->sprinGCore->Code->Autowiring for Bean Class设置为nohighliting ,only fixed.即可
接下来的说”Invalid bound statement “异常,不能找到Mapper接口的代理类
1.检查了我的配置文件,没有问题
2.我看网上很多人说因为Idea不能编译resources目录下的XML文件,然后target下的classes目录下不会生成XML文件,需要在Maven项目的pom文件build下加入以下配置
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>***.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>***.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
可是我的target目下有XML等配置文件,所以不是这个问题,我使用的是IDEA 2017.2.6版本,我想idea应该新点的版本解决了这个问题.
我们知道Mybaties中,Mapper接口和XML配置文件需要在一个目录下。
3、最后我发现我的问题是:
我的resources下的文件建立错误了。
eclipse的resources下可以建立pacakge,但是Idea下不能,只能建立Directory,即目录.
所以我之前新建com.ray.mybbs.mapper.test,这显然是一个文件夹的名称。
正确的建立方式是com/ray/mybs/mapper/test,这样建立多级目录
至此问题解决。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
相关文章