我用的是idea2017,项目分为web、service、dao、model,
其中web、service是war包,dao、model是jar包
用mybatis生成的代码放在dao和model中,其中mapper接口放在dao中,
我在service中注入到中的mapper的时候报红,但是能正常运行,
service中引入了dao 的包
请问这种报红怎么去掉
最后点击ok即可,工具的问题..这就是idea和eclipse的区别
原因可能有两个,第一个是IntellijIDEA本身工具的问题。第二个便是我们导入@Service包的时候导入包错误造成的
第一种原因,spring auto scan配置,在编辑情况下,无法找不到对应的bean,于是提示找不到对应bean的错误。常见于mybatis的mapper,如下:
解决方案
针对第一种原因,解决办法是:降低Autowired检测的级别,将Severity的级别由之前的error改成warning或其它可以忽略的级别。
点击菜单file->editor->code style->inspections->spring 参考http://images2015.cnblogs.com/blog/721070/201612/721070-20161223113553526-1283406981.png
针对第二种原因,解决方案当然是导入正确的包。首先我们来看下最容易导入的错误包,如下所示:
import com.alibaba.dubbo.config.annotation.Service;
正确的包应该是下面这个
import org.springframework.stereotype.Service;
切记切记啊!!!!
我的也这样了重新编译了一遍好了,有时候就不行
alt加回车然后把级别调为警告
mapper类上加 @Component 注解即可
http://blog.csdn.net/u013772876/article/details/62435377
如果只是在service层引入dao层出现这个问题;那就在你的mapper类上加**@Repository**标签
一般情况下是idea的问题,需要配置一下