java Autowired 注释报错问题解决

在使用springboot整合mybatis的时候,在控制器中使用自动注入来注入一个mapper出现了Could not autowire. No beans of ‘xxxx’ type found报错,提示不能够自动注入bean。其实该问题如果编译运行程序不报错正常运行的话那么可能只是intellij idea的问题,如果不能够正常的编译运行,则可能是spring auto scan配置,在编辑情况下,无法找不到对应的bean,于是提示找不到对应bean的错误。

**1、针对于可以正常编译运行但还是出现错误提示的解决方案:**降低Autowired检测的级别,将Severity的级别由之前的error改成warning或其它可以忽略的级别。
在这里插入图片描述
2、针对于不能够正常编译运行的解决方案:正确的导入包,如果是检查错误提示中的类的包是否导入正确,这种错误最常见在mybatis中的mapper下,比如对于mybatis的的注解版或配置文件版的解决办法:

①.配置文件版:在全局配置文件中,配置要自动扫描进容器的包
<!-- mapper scanner configurer -->
<bean id="mapperScannerConfig" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.wp.spring.mybatis.dao" />
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
②.注解版:在运行的主类上加上注解:@MapperScan(value = "要自动扫描的包")-->(springboot整合mybatis的时候)。或则在mybatis项目中的mapper类上面加上注解@Mapper标识这是一个mapper,容器启动的时候就会自动加入到容器中了。示例如下:

1.springboot主类:

在这里插入图片描述

2.mybatis的mapper类:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/CharlesYooSky/article/details/108244976