@Autowired注解爆红原因及解决方法

@Autowired注解爆红原因及解决方法,第1张

@Autowired注解爆红原因及解决方法

目录
  • @Autowired 爆红现象
  • @Autowired报错原因分析
    • @Autowired源码
  • 解决办法

@Autowired 爆红现象

@Autowired报错原因分析 @Autowired源码
public @interface Autowired {
    boolean required() default true;
}

这里说明@Autowired注解必须要注入一个非空的对象
我们看@Autowired注解的包,来自于:
而这个接口:

@Mapper
public interface UserMapper {
    //添加用户方法(注册功能)
    public int addUser(User user);

}

的包来自于:
所以报错原因可以归结如下:
@Autowired注解需要一个非空的对象,而@Autowired是Springframework的,但是它引入的对象是Mybatis的@Mapper注解,而idea不能很好地识别Mybatis的注解,所以idea不能确认当前要注入的对象是否为非NULL对象。

解决办法
  1. 使用@Resource注解,这是一个java注解


2. 在idea的setting里把Autowired中error关了

  1. 在mapper层添加上一个Springframework的注解,比如@Repository注解
@Mapper
@Repository
public interface UserMapper {
    //添加用户方法(注册功能)
    public int addUser(User user);

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5661413.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存