org.springframework.beans.factory.NoSuchBeanDefinitionException 痛定思痛。 2023-07-23 08:59 7阅读 0赞 org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.ydwj.service.UserService' available 在做SSM项目进行测试时遇到的错误,错误太长我将完整的错误放在文章的最下面。 找不到可用的UserService bean,自动注入出错。我先在测试类中测试了一下Mapper 接口没有出现问题,问题一定出现在Service层,Spring没有扫描到相应的或者相关的类或接口。 * 首先检查一下SpringMVC.xml中是否对Service进行了扫描 <context:component-scan base-package="com.ydwj.service"/> * 然后检查是否定义了接口并且在你的ServiceIpml上是否加了@Service(“你自己对应的service”)注意首字母最好小写 @Service("userService") * 绝大多数应该都是配置文件出现问题,主要检查一下与web相关的xml文件或者有的会定义applicationContext.xml将所有的配置文件都注入到这里,然后在web.xml文件中记得更改一下, <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> 还有监听器和dispatcherServelet的配置,引入文件是否正确。 <!--监听器--> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 我自己是在测试的时候只引入了Spring.xml 没有将SpringMVC.xml文件引入,我将新建了一个applicationContext.xml 将Spring相关xml的全部import进去。 org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.ydwj.service.UserService' available at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:351) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:342) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1126) at Test.Test(Test.java:15) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.junit.runner.JUnitCore.run(JUnitCore.java:160) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
还没有评论,来说两句吧...