@org.springframework.beans.factory.annotation.Autowired(required=true)
前提介绍:写springboot练习的时候,项目突然启动不了了,并且出现如下错误。springboot无法扫描到bean
***************************
APPLICATION FAILED TO START
***************************
Description:
Field articleMapper in com.kay.service.Impl.ArticleServiceImpl required a bean of type 'com.kay.mapper.ArticleMapper' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
上网查找了一些之后,发现解决方法
解决方法:
- 方法一:添加注解,在接口XXXmapper上添加
@Repository
和@Mapper
。或者是某处的@Autowired
忘记添加了,注意@Controller
、@Service
等注解千万不要漏掉。
@Repository
@Mapper
public interface ArticleMapper {
...
}
- 方法二:在Application类的上面,配置你的mapper的路径,如下:
@MapperScan("com.kay.mapper")//mapper包的路径
@SpringBootApplication
public class XXXApplication {
public static void main(String[] args) {
SpringApplication.run(XXXApplication.class, args);
}
}
- 方法三:确定pom.xml里的包导入正确了没
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
这次的错误就是忘记导包了。。。。但是不知道为什么之前没有导入包的时候也能运行。
- 方法四:在
application.yaml
中配置一下代码
mybatis:
type-aliases-package: com.kay.pojo
mapper-locations: classpath:mybatis/mapper/*.xml # mapper的具体位置