使用@Autowired注解有错误提示的解决
程序员文章站
2022-03-26 09:08:48
目录使用@autowired注解有错误提示处理方式@resource注解与@autowired注解的异同点spring的@autowired注解报错改为警告使用@autowired注解有错误提示使用s...
使用@autowired注解有错误提示
使用spring boot +mybatis框架时,在service实现类中使用mapper类,给mapper类添加@autowired注解时发现
有错误提示:could not autowire,no beans of "xxx" type found
但程序的编译和运行都正常。
处理方式
方案一:@autowired(required = false) 设置required 属性值为 false,错误消失
方案二:用@resource注解替换@autowired注解,错误消失
@resource注解与@autowired注解的异同点
这两个注解都是用作bean的注入时使用,都是为一个对象变量省去写get,set方法,自动为这个对象注入实例化对象(即注入依赖)注入的方式还是有所区别的 :
-
@autowired
是基于spring的注解org.springframework.beans.factory.annotation.autowired,它默认是按类型进行的装配的,如果想要它按名字进行装配则需在@autowired下面添加@qualifier("name")`注解,都无法找到唯一的一个实现类的时候报错。@autowired注解默认情况下必须要求依赖对象必须存在,如果要允许null值,则应该设置它的required属性为false, -
@resource
是基于j2ee的注解(可以减少了与spring的耦合),(jdk1.6以上支持)默认是按名字进行注解,若不指定装配bean的名字,当注解写在字段上时,默认取字段名,按照名称查找通过set方法进行装配,倘若有多个子类,则会报错。需要注意的是name属性一旦指定,就只会按照名称进行装配
spring的@autowired注解报错改为警告
使用@autowired注解在idea里会有error提示,不影响程序正常运行,据我观察身边同事们大多也是选择无视这个error,但一条红线放在这看着确实难受。后来得知可以把这里的error改为warning,并且不会干扰其他代码。
打开idea的settings,找到如下图所示位置,修改自动注入时的error错误为warning警告。
成功修改后就不会有烦人的红色下划线了(变成了黄色的),不建议随意修改这些检测,除非你确实很了解它。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
推荐阅读
-
U盘使用时弹出错误提示0x80070570的解决办法
-
使用u盘时弹出错误提示0x80070570 的解决方法(图文)
-
电脑中使用扫描仪时提示通讯错误时请更新扫描端口的解决方法
-
XP系统连接VPN提示错误633:调制解调器已在使用的解决方法图文教程
-
IIS8.5 配置错误提示不能在此路径中使用此配置节的解决办法
-
在使用u盘时弹出错误提示0x80070570的图文解决方法
-
金士顿U盘使用修复工具提示不支持控制器错误的解决方法
-
IIS7下使用ASP.NET连接ACCESS数据库时提示如下错误的解决方法
-
爱奇艺播放器不能使用提示错误代码4016怎么办? 爱奇艺4016的解决办法
-
使用@Autowired注解引入server服务层方法时报错的解决