expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
2019-11-07 14:02:36.092 INFO 18496 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2019-11-07 14:02:36.103 INFO 18496 --- [ main] ConditionEvaluationReportLoggingListener :
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-11-07 14:02:36.159 ERROR 18496 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Field taskMapper in com.datacenter.sys.web.service.impl.TaskServiceImpl required a bean of type 'com.datacenter.sys.web.mapper.TaskMapper' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'com.datacenter.sys.web.mapper.TaskMapper' in your configuration.
Process finished with exit code 1
在开发过程中springboot项目使用的mybatis遇到以上报错问题,项目中使用了以下注解来扫描mapper层的包,
@MapperScan(basePackages = "com.datacenter.sys.web.mapper")
*mapper.xml也正常配置了,但是仍然还是报错。
最后发现报错原因是mapper.xml里面的namespace的对应包路径以及resultType里边的对应包路径错误了,才导致了以上问题。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.datacenter.sys.web.mapper.TaskMapper">
<select id="get" parameterType="java.lang.Long" resultType="com.datacenter.sys.web.entity.TaskDO">
select * from sys_task where id = #{id,jdbcType=BIGINT}
</select>
</mapper>