idea中因spring配置文件找不到引发的 FileNotFoundException 和 NoSuchBeanDefinitionException
项目环境:maven项目,目前只搭建了spring,项目中确保spring配置文件正确配置,代码中注解形式无误
报错:在用springTest去测试搭建的环境时抛出异常
FileNotFoundException 和 NoSuchBeanDefinitionException
搜索良久无果、最后在高人指点下发现是idea中maven对spring的资源文件有着特殊管理,通俗点就是 你项目的spring-mvc.xml配置文件要通过maven告诉spring在哪里去获取它。
客观请看。。。
1、spirngTest类
2、图中可以看到 classpath:spring-mvc-test.xml文件为红色标志(这个就是错误的根本原因、因为spring找不到配置文件在哪里)
2-1、(错误示范,还原现场)不对classpath做处理,报错信息为
Caused by: java.io.FileNotFoundException: class path resource [spring-mvc-test.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:330)
... 36 more
2-2、(错误示范,还原现场)对classpath做简单处理(加入*号跳过)
做过处理后的报错信息
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.quanzhi.audit_core.monitor.service.ICpuMonitorService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1373)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1119)
... 25 more
3、上面可以看到这两个异常抛出的场景。针对这两异常,本人与度娘从清晨畅聊至晌午,一无所获。
4、请教高人
5、解决方法:直接上图
5-1、我的项目目录
5-2、 ctrl + alt + shift + s 打开 [ project structure ] (点击idea左上角的 File 中也能看到)
上图中可以看到 resource 文件夹的颜色为 正常的文件夹,在idea中对于配置文件一般是用特殊的文件夹存放的,这样一来,我们只要把这个文件夹配置成 资源文件夹 在通知maven和spring就好啦。
再点击右下角 applay --> ok 就好了
6、再次跑springTest就能跑通了
7、真滴是。。。。唉。。。希望能帮到大家
8、OK