spring mvc注入service报错;

部分代码如下:

报错:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private myforum.service.UserTest myforum.controller.UserController.userTest; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [myforum.service.UserTest] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {org.springframework.beans.factory.annotation.Autowired(required=true)}
配置如下:
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml,classpath:spring-hibernate.xml</param-value>
</context-param>
<servlet>
<description>spring mvc servlet</description>
<servlet-name>springMvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<description>spring mvc 配置文件</description>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
spring.xml
<!-- 自动扫描dao和service包(自动注入) -->
<context:component-scan base-package="myforum.dao,myforum.service" />
<!-- 引入属性文件 -->
<context:property-placeholder location="classpath:config.properties" />
spring-mvc.xml
<!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 -->
<context:component-scan base-package="myforum.controller" />

需要的都提供了 应该没错,就是注入错误。求牛人解答
问题搞定了,谢谢大家。
还是不够火候,知道问题所在,却就是没发现这么个漏掉的

你貌似没有引入'userController' 这个类的包。。所以spring 不认识它。所以没发注入。
<context:component-scan base-package="myforum.dao,myforum.service" /> 这样的写法。我没用过。我都是把2个包分开写。不知道你的这个'userController' 是不是在 ,myforum.service包下追问

搞定了,问题不是这个,这两个配置都没问题。
和我想的一样.
web.xml配置问题,导致没加载spring.xml,spring-mvc.xml加载时发现service没被加载,注入报错

追答

问题解决了。就好了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-17
使用@Resource或者@Autowired吧,这个才表示需要自动注入的
@Service是放在你的Service类上面的(和@Controller放置的地方一样),表示这个类是Service类
第2个回答  2018-03-31

    从controller到service到dao全部检查一遍;

    或者全部粘贴出来,才能看到问题。

本回答被网友采纳
第3个回答  2013-04-17
么有找到要注入的bean
你的配置有问题吧
<context:component-scan base-package="myforum.dao,myforum.service" />

有这样的写法吗?
不想扫描某个包使用 表达式过滤掉就可以了。
spring 中的自动扫描中加入
<context:component-scan base-package="myforum" >

<context:exclude-filter type="regex" expression="myforum.controller.*" />
</context:component-scan>

排除掉就可以了吧。你试试
提供的都是半截代码,实在是没法判断追问

控制器这段已经过了.
可能的是
spring.xml

在spring-mvc.xml扫描控制器时还没加载,你觉得可能不

追答

你的配置文件是什么关于什么的?spring mvc的还是什么?

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网