spring自动注入问题,求大神帮忙!

lovelee86 2015-03-13 02:50:52
新手刚接触spring自动注入,搭了个环境想学习一下,结果报错,检查了一上午了,没发现原因,请大神指教

严重: StandardWrapper.Throwable
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sysUserController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.guosen.cmp.service.iservice.ISysUserService com.guosen.cmp.controller.SysUserController.sysUserService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.guosen.cmp.service.iservice.ISysUserService] 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)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:292)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:703)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:658)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:624)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:672)
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:543)
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:484)
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
at javax.servlet.GenericServlet.init(GenericServlet.java:158)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5231)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5518)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.guosen.cmp.service.iservice.ISysUserService com.guosen.cmp.controller.SysUserController.sysUserService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.guosen.cmp.service.iservice.ISysUserService] 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)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:508)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289)
... 29 more
代码
web.xml
<!-- spring context -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/spring-config.xml</param-value>
</context-param>
<!-- spring mvc -->
<servlet>
<servlet-name>springMvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/spring-mvc-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

spring-config.xml
<!-- spring -->
<context:component-scan base-package="com.guosen.cmp"/>

spring-mvc-config
<context:component-scan base-package="com.guosen.cmp.controller" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>

@RestController
public class SysUserController {
@Autowired
private ISysUserService sysUserService;

@Service
public class SysUserService implements ISysUserService {
@Autowired
private ISysUserDao sysUserDao;

@Repository
public class SysUserDao extends BaseDao<SysUserDto> implements ISysUserDao {
...全文
366 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
imaginefei 2015-03-18
  • 打赏
  • 举报
回复
spring-core.xml里面加一句试试: <!-- 开启注解处理器 --> <context:annotation-config/> Dao的实现类用@Repository(value="sysUserDao") Service实现类用@Service(value="sysUserService") 把@Autowired换成@Resource,例如: @Resource(name="sysUserDao") private ISysUserDao sysUserDao;
lovelee86 2015-03-16
  • 打赏
  • 举报
回复
引用 5 楼 zqqqq1989 的回复:
<!-- 引用@Autowired必须定义这个bean --> <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/> 这个链接 是原因:http://blog.csdn.net/heyutao007/article/details/5981555 你用试试 还有就是 别用这种 自动注入的注解 换一种形式
谢谢,我试试去
lovelee86 2015-03-16
  • 打赏
  • 举报
回复
引用 4 楼 wangxf_8341 的回复:
在ISysUserService 的实现类上加上@Service 注解 在ISysUserDao 的实现类上加上 @Repository 注解
@Service和@Repository 我已经加了,还是表示感谢
zqqqq1989 2015-03-13
  • 打赏
  • 举报
回复
<!-- 引用@Autowired必须定义这个bean --> <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/> 这个链接 是原因:http://blog.csdn.net/heyutao007/article/details/5981555 你用试试 还有就是 别用这种 自动注入的注解 换一种形式
淡定的峰哥 2015-03-13
  • 打赏
  • 举报
回复
在ISysUserService 的实现类上加上@Service 注解 在ISysUserDao 的实现类上加上 @Repository 注解
lovelee86 2015-03-13
  • 打赏
  • 举报
回复


目录和jar包
lovelee86 2015-03-13
  • 打赏
  • 举报
回复
引用 1 楼 wangxf_8341 的回复:
sysUserService和sysUserDao 你没有在spring.xml中定义 当然就不能完成自动注入了
没太明白呀 <context:component-scan base-package="com.guosen.cmp"/>这个配好不是就不用配置单独的bean了么? 麻烦解答一下,谢谢
淡定的峰哥 2015-03-13
  • 打赏
  • 举报
回复
sysUserService和sysUserDao 你没有在spring.xml中定义 当然就不能完成自动注入了

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧