SSM框架练手,mapper层@Autowire创建bean怎么也不成功,报错:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController': Unsatisfied dependency expressed through field 'userService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userServiceImp': Unsatisfied dependency expressed through field 'userMapper'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.wanzi.mapper.UserMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
搞了一天,终于发现有两处错误:
web.xml文件中缺少一段代码
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
这一段代码的功能是注册Spring框架,启动spring容器,我的理解是spring容器没有启动成功,所以注解@Autowire出错了
还有就是,在applicationContext_service.xml文件中 ,该段代码
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataResources"></property> </bean>
其中ref="dataResources" 写成了value="dataResources",一不小心就错了
改了这两处之后,错误消失了
博主在使用SSM(Spring、SpringMVC、MyBatis)框架时遇到了mapper层@Autowire注解无法创建bean的问题,经过一天的排查,发现有两个关键错误。首先,web.xml缺少了`<listener>`标签,导致Spring容器未正确启动,影响了注解的自动装配。其次,applicationContext_service.xml中transactionManager的配置里,`ref`属性误写为`value`,导致数据源未能正确引用。修复这两处错误后,问题得到解决。
1万+

被折叠的 条评论
为什么被折叠?



