项目场景:
仅仅是多了一个
resources.mapper.RecreateMapper.xml
就报这个
【MyBatis-bug解决记录】Injection of resource dependencies failed; nested exception is org.springfra…的错误了
问题排查:
1 启动类的MapperScan没错,扫描路径为项目路径下的mapper包下面的所有mapper类
@MapperScan("com.zk.api.mapper")
public class AsoulApiApplication{.....}
2 RecreateMapper.xml的命名空间、对应类名均没错
<mapper namespace="com.zk.api.mapper.RecreateMapper">
<resultMap id="BaseResultMap">
...
</resultMap>
原因分析:
错误的地方其实是下面这行代码
<result property="releasetime" column="releasetime" jdbcType="DATETIME"/>
MySQL里面记录时间可以用DATETIME类型,但是MyBatis里面没有这个类,可以用DATESTAMP或者DATE,前者所得到的时间为yyyy-MM-dd HH:mm:ss 格式,后者为yyyy-MM-dd 00:00:00
解决方案:
修改为
<result property="releasetime" column="releasetime" jdbcType="DATESTAMP"/>
这说明,Injection of resource dependencies failed; nested exception is org.spring这个错误很可能是mapper文件编写错误导致注入失败,可以多检查mapper扫描路径、mapper命名空间、mapper文件编写是否有错。