Error creating bean with name 'loginController': Injection of autowired dependencies failed......xxxxx
运行环境:jdk1.7.0_17+tomcat 7 + spring:3.2.0 +mybatis:3.2.7+ eclipse
错误:在使用框架时候启动报错:Error creating bean with name 'loginController': Injection of autowired dependencies failed......xxxxx
错误原因:在使用springmvc 注解开发中从错误来看提示我有一个bean 无法注入到容器,反复查看着了些资料是我没有告诉系统我的service是那个没有添加注解倒置的,特此写下原因记录下
解决办法:可以看到我下面接口实现service类并没有任何注解,只需要加上注解就ok了 "@Service" 告诉系统這是我的service
错误代码:
1 [org.springframework.beans.factory.support.DefaultListableBeanFactory] - Returning cached instance of singleton bean 'xxhhTableConcernCustomMapper' 2 [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor] - Autowiring by type from bean name 'loginServiceImpl' to bean named 'xxhhTableConcernCustomMapper' 3 [org.springframework.beans.factory.annotation.InjectionMetadata] - Processing injected element of bean 'loginServiceImpl': AutowiredFieldElement for private com.xxhh.mapper.XxhhTableLikeCustomMapper com.xxhh.service.impl.LoginServiceImpl.likeCustomMapper 4 [org.springframework.beans.factory.support.DefaultListableBeanFactory] - Returning cached instance of singleton bean 'xxhhTableLikeCustomMapper' 5 [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor] - Autowiring by type from bean name 'loginServiceImpl' to bean named 'xxhhTableLikeCustomMapper' 6 [org.springframework.beans.factory.annotation.InjectionMetadata] - Processing injected element of bean 'loginServiceImpl': AutowiredFieldElement for private com.xxhh.mapper.XxhhTableOrdercommetsCustomMapper com.xxhh.service.impl.LoginServiceImpl.xxhhTableOrdercommetsCustomMapper 7 [org.springframework.beans.factory.support.DefaultListableBeanFactory] - Returning cached instance of singleton bean 'xxhhTableOrdercommetsCustomMapper' 8 [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor] - Autowiring by type from bean name 'loginServiceImpl' to bean named 'xxhhTableOrdercommetsCustomMapper' 9 [org.springframework.beans.factory.support.DefaultListableBeanFactory] - Finished creating instance of bean 'loginServiceImpl' 10 [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor] - Autowiring by type from bean name 'loginController' to bean named 'loginServiceImpl' 11 [org.springframework.beans.factory.annotation.InjectionMetadata] - Processing injected element of bean 'loginController': AutowiredFieldElement for private com.xxhh.service.BabyService com.xxhh.controller.LoginController.babyService 12 [org.springframework.web.context.support.XmlWebApplicationContext] - Exception encountered during context initialization - cancelling refresh attempt 13 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loginController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.xxhh.service.BabyService com.xxhh.controller.LoginController.babyService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.xxhh.service.BabyService] 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)} 14 at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334) 15 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1210) 16 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537) 17 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) 18 at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) 19 at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 20 at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) 21 at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 22 at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755) 23 at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) 24 at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) 25 at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:663) 26 at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:629) 27 at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:677) 28 at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:548)
相关代码:
Controller
1 @Controller 2 public class LoginController { 3 //定义个loginservlice 属性 4 @Autowired private LoginService loginService; 5 //定义babyservice 6 @Autowired private BabyService babyService; 7 8 /** 9 * 传一个学生id 查询学生所有相关资料 粉丝 点赞 关注 个人资料 以及卖出的 发布的宝贝。 10 * @param student_id 11 * @return 12 */ 13 @ResponseBody 14 @RequestMapping(value="/selectxxhh_user",method={RequestMethod.GET}) 15 public Map<String, Object> selecAllUsermMeanst(@RequestParam(value="student_id",required=false)String student_id) { 16 System.out.println(student_id); 17 XxhhTableOrdercommets xxhhTableOrdercommets = new XxhhTableOrdercommets(); 18 xxhhTableOrdercommets.setStudentId(Integer.valueOf(student_id)); 19 Map<String, Object>map = new HashMap<String,Object>(); 20 //通过service 接口调用接口实现类然后实现类在操作数据库查询 21 XxhhTableUser xxhhTableUser = loginService.selecAllUsermMeanst(Integer.valueOf(student_id)); 22 List<XxhhTableFans> fasnList = loginService.selectAllFans(Integer.valueOf(student_id)); 23 List<XxhhTableConcern> concernList = loginService.selectAllConcern(Integer.valueOf(student_id)); 24 List<XxhhTableLike> likesList = loginService.selectAllLike(Integer.valueOf(student_id)); 25 List<XxhhTableOrdercommets> ordercommets = loginService.selectAllOrdercommets(Integer.valueOf(student_id)); 26 List<XxhhTableBaby>babySelles =babyService.selectAllReleases(Integer.valueOf(student_id)); 27 List<XxhhTableBaby> babySales = babyService.selectAllSelles(Integer.valueOf(student_id)); 28 if (null == xxhhTableUser) { 29 map.put("result", 1); 30 map.put("data", "网络连接失败"); 31 }else { 32 map.put("xxhhTableUser", xxhhTableUser); 33 map.put("AllFans", fasnList); 34 map.put("AllConcernList", concernList); 35 map.put("AllLikes", likesList); 36 map.put("AllOrdercommets", ordercommets); 37 map.put("AllSelles", babySelles); 38 map.put("AllSale", babySales); 39 map.put("result", 0); 40 } 41 42 return map; 43 }
接口service
public interface BabyService { //查询发布的宝贝 List<XxhhTableBaby> selectAllReleases(Integer student_id); //查询卖出的宝贝 List<XxhhTableBaby> selectAllSelles(Integer student_id); }
接口实现类
public class BabyServiceImpl implements BabyService { @Autowired private XxhhTableBabyCustomMapper xxhhTableBabyCustomMapper; //发布的宝贝 @Override public List<XxhhTableBaby> selectAllReleases(Integer student_id) { // TODO Auto-generated method stub return xxhhTableBabyCustomMapper.selectAllReleases(student_id); } //卖出的宝贝 @Override public List<XxhhTableBaby> selectAllSelles(Integer student_id) { // TODO Auto-generated method stub return xxhhTableBabyCustomMapper.selectAllSelles(student_id); } }