问题:
在dao接口中用@Mapper注解,然后装配这个接口时就会报错,但项目可以正常运行,该接口的实例对象也可以拿到 ,这是idea的问题 代码没错的。
.
.
.
解决方法一:
修改idea的设置:
打开 File=>settings=>Editor=>Inspections=>Spring=>
Spring Core=>Code=>Autowiring for Bean Class
然后把Error修改成Warning
.
.
.
解决方法二:
在@Autowired中添加required=false属性
.
.
.
解决方法三:
修改mapper接口的注解,将@Mapper修改成@Component
.
.
.
解决方法四:
将@Autowired注解换成@Resource注解。
@Autowired ,spring自带的注解,默认按类型装配(byType),由AutowiredAnnotationBeanPostProcessor类实现,默认情况下要求依赖对象必须存在。
@Resource,默认按名称装配(byName),可以用过@Resource的name属性指定名称,如果没有name属性,当注解写在字段上时,默认取字段名进行按照名称查找,当找不到与名称匹配的bean时才按照类型进行装配。该注解属于J2EE JSR250规范的实现,但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。
.
.
.
注意:
如果你代码本身就有问题,项目运行不能正常运行,会出现报错,这就要先解决业务代码的bug 再解决这个强迫症的问题。