错误
新创建的项目,使用了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 {。。。}