关于@Autowire注入报错解决方案——项目能运行,但是IDEA却爆红

1、添加@SuppressWarnings注解

在这里插入图片描述
的确有效,但是这个并不是解决问题,只是告诉IDEA忽略这种错误警告

简介:java.lang.SuppressWarnings是J2SE5.0中标准的Annotation之一。可以标注在类、字段、方法、参数、构造方法,以及局部变量上。
作用:告诉编译器忽略指定的警告,不用在编译完成后出现警告信息。
使用:
@SuppressWarnings(“”)
@SuppressWarnings({})
@SuppressWarnings(value={})

根据sun的官方文档描述:
value -将由编译器在注释的元素中取消显示的警告集。允许使用重复的名称。忽略第二个和后面出现的名称。出现未被识别的警告名不是错误:编译器必须忽略无法识别的所有警告名。但如果某个注释包含未被识别的警告名,那么编译器可以随意发出一个警告。

各编译器供应商应该将它们所支持的警告名连同注释类型一起记录。鼓励各供应商之间相互合作,确保在多个编译器中使用相同的名称。

示例:

· @SuppressWarnings(“unchecked”)

告诉编译器忽略 unchecked 警告信息,如使用List,ArrayList等未进行参数化产生的警告信息。

· @SuppressWarnings(“serial”)

如果编译器出现这样的警告信息:The serializable class WmailCalendar does notdeclare a static final serialVersionUID field of type long
使用这个注释将警告信息去掉。

· @SuppressWarnings(“deprecation”)

如果使用了使用@Deprecated注释的方法,编译器将出现警告信息。
使用这个注释将警告信息去掉。

· @SuppressWarnings(“unchecked”, “deprecation”)

告诉编译器同时忽略unchecked和deprecation的警告信息。

· @SuppressWarnings(value={“unchecked”, “deprecation”})

等同于@SuppressWarnings(“unchecked”, “deprecation”)

2、在mapper文件上添加@Repository注解

@Repository注解便属于最先引入的一批,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。具体只需将该注解标注在 DAO类上即可

这是从spring2.0新增的一个注解,用于简化 Spring 的开发,实现数据访问

@repository需要在Spring中配置扫描包地址,然后生成dao层的bean,之后被注入到ServiceImpl中

3、在mapper文件上添加@Component注解

@Component把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>

@Component是 @Service @Controller @Repository 的父注解 通过类路径扫描自动检测实现类

4、在mapper文件上添加@Mapper注解

使用@mapper后,不需要在spring配置中设置扫描地址,通过mapper.xml里面的namespace属性对应相关的mapper类,spring将动态的生成Bean后注入到ServiceImpl中。


以上解决方案都可以,但是如果用以上方案,那么我主程序类里面的**@MapperScan**注解又有什么用呢?,意义何在!

我们都知道,使用**@MapperScan**的目的是为了简化开发,不用每个mapper都去指定@Mapper注解,但是使用@MapperScan注解后却会爆红(虽然不影响执行,但是却让人一脸迷惑)

希望哪位大神给个关于这个问题的精确解释,欢迎留言,谢谢!!!!!!!

5、既然又想用@MapperScan,又不想写请其他注解该怎么办呢?

方法当然有:

A:忍受IDEA随便在你的代码上标红,能运行就行(反正我受不了)

B:使用**@Resource注解**代替@Autowired (也就是之前提到的解决方案)

@Resource
private StudentMapper studentMapper;

在大多数的应用场景下,@Resources都可以代替@Autowired

@Autowired注解 -【Spring底层原理】 (qq.com)

6、如果又不想用其他注解代替@Autowired,又不想添加其他注解,但是又能符合编码规范,该怎么解决呢,欢迎知道的大神留言讨论,或者详细讲解下IDEA报错的原因及其解释

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心醉瑶瑾前

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值