@Autowired报错的4种解决方案和原因分析!(4)

简介: @Autowired报错的4种解决方案和原因分析!(4)

@Autowired 默认值的实现源码:


微信图片_20220120193902.jpg


解决方案4:使用@Resource注解


使用 @Resource 注解替换 @Autowired 注解也可以避免报错,它们的对比效果如下:


微信图片_20220120193916.jpg


@Resource 注解和 @Autowired 注解以当前的场景来说,它们的主要区别是 @Resource 是 Java 自身提供的注解,而 @Autowired 是 Spring 提供的注解,@Autowired 默认值为 required=true,所以必须要一个非 NULL 的对象,当 IDEA 检测不到对象为 NULL 时就会报错,而 @Resource 并没有这项要求。


总结


使用 @Autowired 注解导入 Mapper 对象报错的原因,是因为 @Autowired 默认情况下,需要注入一个非 NULL 的对象,而被 @Mapper 修饰的类为 MyBatis 的注解,IDEA 并不能很好的识别其为非 NULL 对象,因此就会报错。当然,它的解决方案也有很多,推荐使用 @Resource 替代 @Autowired 注解的方式来解决此问题。

相关文章
|
6月前
|
前端开发 Java
|
开发者
请谨慎使用 @Builder 注解!
本文主要指出 @Builder 存在的一些问题,指出它并不是链式编程的最佳实践。
1072 54
|
6月前
|
Java Spring 容器
太棒啦!Autowired工作流程
太棒啦!Autowired工作流程
|
Java 容器
Java实现Autowired自动注入
Test2正常 Test3空指针 因为不在容器里
126 0
|
缓存 Java 容器
九.Spring源码剖析-Autowired自动注入原理
这篇文章接上一篇文章属性注入讲一讲 @Autowired 注解的实现源码,这个也是面试被问的比较多的。
|
Java 关系型数据库 MySQL
案例09 基于JdbcTemplate的学生信息维护案例
使用Spring JdbcTemplate实现学生信息的新增、修改、删除、查询单个、查询所有功能,并实现MySQL数据库的操作。
78 0
|
缓存 Java Spring
Spring源码分析之Bean的创建过程详解(一)
Spring源码分析之Bean的创建过程详解
148 0
|
XML 存储 Java
【Spring专题】「原理系列」全方面解析SpringFramework的Bean对象的深入分析和挖掘指南
【Spring专题】「原理系列」全方面解析SpringFramework的Bean对象的深入分析和挖掘指南
192 0
【Spring专题】「原理系列」全方面解析SpringFramework的Bean对象的深入分析和挖掘指南
|
Java Spring
Spring源码分析之Bean的创建过程详解(二)
Spring源码分析之Bean的创建过程详解
97 0
|
Java Spring
Spring源码分析之Bean的创建过程详解(三)
Spring源码分析之Bean的创建过程详解
93 0