解決spring mybatis 整合後mapper介面注入失敗

來源:互聯網
上載者:User

標籤:tin   zed   nis   abstract   ram   serve   method   div   web   

spring整合mybatis,在dao層我們唯寫一個介面,配置相應的*mapper.xml檔案,

報如下錯誤:

 1 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘helloController‘: Unsatisfied dependency expressed through field ‘helloService‘; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘helloService‘: Unsatisfied dependency expressed through field ‘helloMapper‘; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘com.aopeng.quest.dao.IHelloMapper‘ available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 2     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588) 3     at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) 4     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366) 5     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264) 6     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) 7     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) 8     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 9     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)10     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)11     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)12     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)13     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)14     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)15     at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:443)16     at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:325)17     at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)18     at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4727)19     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5189)20     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)21     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:724)22     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)23     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)24     at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1702)25     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)26     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)27     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)28     at java.lang.reflect.Method.invoke(Method.java:498)29     at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)30     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)31     at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)32     at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:482)33     at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:431)34     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)35     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)36     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)37     at java.lang.reflect.Method.invoke(Method.java:498)38     at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)39     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)40     at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)41     at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)42     at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)43     at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)44     at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401)45     at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)46     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)47     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)48     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)49     at java.lang.reflect.Method.invoke(Method.java:498)50     at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:324)51     at sun.rmi.transport.Transport$1.run(Transport.java:200)52     at sun.rmi.transport.Transport$1.run(Transport.java:197)53     at java.security.AccessController.doPrivileged(Native Method)54     at sun.rmi.transport.Transport.serviceCall(Transport.java:196)55     at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)56     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)57     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)58     at java.security.AccessController.doPrivileged(Native Method)59     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)60     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)61     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)62     at java.lang.Thread.run(Thread.java:745)63 Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘helloService‘: Unsatisfied dependency expressed through field ‘helloMapper‘; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘com.aopeng.quest.dao.IHelloMapper‘ available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}64     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)65     at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)66     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)67     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)68     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)69     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)70     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)71     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)72     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)73     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)74     at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208)75     at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)76     at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)77     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)78     ... 60 more79 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘com.aopeng.quest.dao.IHelloMapper‘ available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}80     at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1493)81     at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)82     at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)83     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)84     ... 73 more

 

起始這是由於一個低級錯誤引起的,在applicationContext.xml中有如下的配置:

1 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">2          <property name="basePackage" value="com.xxx.xxx.dao.**.*" />3          <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />4 </bean>

 

basePackage的value應該是指定包名,而我指定的檔案名稱。

改成如下配置,編譯正常通過:

1 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">2          <property name="basePackage" value="com.xxx.xxx.dao" />3          <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />4 </bean>

 

解決spring mybatis 整合後mapper介面注入失敗

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.