普通java类注入dao失败_spring mvc 整合mybatis dao接口注入失败

错误信息:

严重: StandardWrapper.Throwable

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 com.xxq.serviceimp.UserServiceImpl com.xxq.controller.UserController.userInfoServiceImpl; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.xxq.mapper.UserDAO com.xxq.serviceimp.UserServiceImpl.userDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.xxq.mapper.UserDAO] 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:334)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:305)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)

at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:834)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537)

at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:667)

at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:633)

at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:681)

at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:552)

at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:493)

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:1269)

at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1182)

at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1072)

at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5368)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5660)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1571)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1561)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

代码目录如下

cc874bb575f05ca1f653828f21a2c6e2.png

UserController.java

packagecom.xxq.controller;importjava.io.IOException;importjava.util.List;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.json.JSONArray;importorg.json.JSONObject;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importcom.xxq.po.User;importcom.xxq.serviceimp.UserServiceImpl;

@Controllerpublic classUserController {

@AutowiredprivateUserServiceImpl userInfoServiceImpl;/** 获取用户 + 分页 + 按账号姓名筛选*/@RequestMapping(value= "/getUsers")public String getAllUsers(HttpServletRequest request, HttpServletResponse response) throwsIOException {//分页,easyui-datagrid会自动传递页码page和页长size

int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));int rows = request.getParameter("rows") == null ? 10 : Integer.parseInt(request.getParameter("rows"));//筛选条件

String search_name = request.getParameter("search_name") == null ? "" : request.getParameter("search_name");

String search_account= request.getParameter("search_account") == null ? "": request.getParameter("search_account");//调用服务

List users =userInfoServiceImpl.getAllUsers(page, rows, search_name, search_account);//封装json数据,total存放数据总数,rows存放数据数组,以提供给easyui的datagrid

JSONObject json = newJSONObject();//筛选后的总数

json.put("total", userInfoServiceImpl.getCount(search_name, search_account));

JSONArray row= newJSONArray();for(User info : users) {

JSONObject jo= newJSONObject();

jo.put("id", info.getId());

jo.put("account", info.getAccount());

jo.put("name", info.getName());

jo.put("phone", info.getPhone());

jo.put("email", info.getEmail());

jo.put("address", info.getAddress());

row.put(jo);

}

json.put("rows", row);

System.out.println(json.toString());//写入响应

response.setContentType("text/html;charset=utf-8");

response.getWriter().print(json.toString());//没有对应jsp文件,故直接返回null

return null;

}

}

UserDAO.java

packagecom.xxq.mapper;importjava.util.List;importorg.apache.ibatis.annotations.Param;importorg.springframework.stereotype.Repository;importcom.xxq.po.User;

@Repositorypublic interfaceUserDAO {//取全部用户 + 分页 + 按条件匹配

public List getAllUsers(@Param("skip") int skip, @Param("size") intsize,

@Param("search_name") String search_name, @Param("search_account") String search_account);//用户数量

public int getCount(@Param("search_name") String search_name, @Param("search_account") String search_account);//添加用户

public intaddUser(User user);//更新

public intupdateUser(User user);//删除

public int deleteUserById(intid);

}

userDaoMapper.xml

/p>

PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select count(*) from user where name like #{search_name} and account like #{search_account}

select*from user where name like #{search_name} and account like #{search_account} limit #{skip},#{size}

insert into user(name,account,phone,email,address) values(#{name},#{account},#{phone},#{email},#{address});

update user set name=#{name},account=#{account},phone=#{phone},email=#{email},address=#{address} where id=#{id}

delete from user where id=#{id}

UserService

packagecom.xxq.service;importjava.util.List;importcom.xxq.po.User;public interfaceUserService {public List getAllUsers(int pageNo, intsize, String search_name, String search_account);/*** 用户数量

*@return

*/

public intgetCount(String search_name, String search_account);/*** 新增用户

*@paramuser

*@return

*/

public intaddUser(User user);/*** 更新用户

*@paramuser

*@return

*/

public intupdateUser(User user);/*** 删除用户

*@paramid

*@return

*/

public int deleteUserById(intid);

}

UserServiceImpl

packagecom.xxq.serviceimp;importjava.util.List;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;importorg.springframework.stereotype.Service;importcom.xxq.mapper.UserDAO;importcom.xxq.po.User;importcom.xxq.service.UserService;

@Servicepublic class UserServiceImpl implementsUserService {

@AutowiredprivateUserDAO userDao;//获取用户数量 + 按账号姓名匹配

public intgetCount(String search_name, String search_account) {//TODO Auto-generated method stub

return userDao.getCount("%" + search_name + "%", "%" + search_account + "%");

}//获取用户 + 分页 + 按账号姓名匹配

public List getAllUsers(int pageNo, intsize, String search_name, String search_account) {//TODO Auto-generated method stub

return userDao.getAllUsers((pageNo - 1) * size, size, "%" + search_name + "%", "%" + search_account + "%");

}//添加用户

public intaddUser(User user) {//TODO Auto-generated method stub

returnuserDao.addUser(user);

}//更新用户

public intupdateUser(User user) {//TODO Auto-generated method stub

returnuserDao.updateUser(user);

}//删除指定id用户

public int deleteUserById(intid) {//TODO Auto-generated method stub

returnuserDao.deleteUserById(id);

}

}

配置文件如下:

mybatisconfig.xml

/p>

PUBLIC"-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

spring-dao.xml

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

spring-mvc.xml

web.xml

index.jsp

Spring容器加载监听器

org.springframework.web.context.ContextLoaderListener

设置Spring加载时的配置文件位置,默认位置在WEB-INF/lib目录下

contextConfigLocation

classpath*:config/spring/spring-dao.xml

springmvc

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:config/spring/spring-mvc.xml

1

springmvc

/

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

utf-8

forceEncoding

true

encodingFilter

/*

StandardWrapper.Throwable

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 com.xxq.serviceimp.UserServiceImpl com.xxq.controller.UserController.userInfoServiceImpl; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.xxq.mapper.UserDAO com.xxq.serviceimp.UserServiceImpl.userDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.xxq.mapper.UserDAO] 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:334)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:305)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)

at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:834)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537)

at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:667)

at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:633)

at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:681)

at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:552)

at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:493)

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:1269)

at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1182)

at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1072)

at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5368)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5660)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1571)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1561)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值