错误

新创建的项目,使用了Mybatis 启动报错:
ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'poemController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'poemService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.example.demo.dao.PoemDao' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)}

原因

没有扫描mapper 接口,所以没有自动创建这些 bean,所以注入的时候找不到PoemDao就报错了:
Controller 层注入 Service
Service 层注入 Dao
Dao 没有,抛出异常。

解决方案

方案1. 启动类添加注解:

@MapperScan("com.example.demo.dao")

方案2. 所有mapper添加注解@Mapper

@Mapper
public interface PoemDao {。。。}

参考资料

SpringBoot 配置之:Mybatis配置

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐