Spring integration MyBatis, in the DAO layer we only write an interface, configure the corresponding *mapper.xml file,
The following error is reported:
1Org.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 beans 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)}2At org.springframework.beans.factory.annotation.autowiredannotationbeanpostprocessor$ Autowiredfieldelement.inject (autowiredannotationbeanpostprocessor.java:588)3At Org.springframework.beans.factory.annotation.InjectionMetadata.inject (injectionmetadata.java:88)4At Org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues ( autowiredannotationbeanpostprocessor.java:366)5At Org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean ( abstractautowirecapablebeanfactory.java:1264)6At Org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean ( abstractautowirecapablebeanfactory.java:553)7At Org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean ( abstractautowirecapablebeanfactory.java:483)8At Org.springframework.beans.factory.support.abstractbeanfactory$1.getobject (abstractbeanfactory.java:306)9At Org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton ( defaultsingletonbeanregistry.java:230)TenAt Org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (abstractbeanfactory.java:302) OneAt Org.springframework.beans.factory.support.AbstractBeanFactory.getBean (abstractbeanfactory.java:197) AAt Org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons ( defaultlistablebeanfactory.java:761) -At Org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization ( abstractapplicationcontext.java:867) -At Org.springframework.context.support.AbstractApplicationContext.refresh (abstractapplicationcontext.java:543) theAt Org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext (Contextloader.java : 443) -At Org.springframework.web.context.ContextLoader.initWebApplicationContext (contextloader.java:325) -At Org.springframework.web.context.ContextLoaderListener.contextInitialized (contextloaderlistener.java:107) -At Org.apache.catalina.core.StandardContext.listenerStart (standardcontext.java:4727) +At Org.apache.catalina.core.StandardContext.startInternal (standardcontext.java:5189) -At Org.apache.catalina.util.LifecycleBase.start (lifecyclebase.java:150) +At Org.apache.catalina.core.ContainerBase.addChildInternal (containerbase.java:724) AAt Org.apache.catalina.core.ContainerBase.addChild (containerbase.java:700) atAt Org.apache.catalina.core.StandardHost.addChild (standardhost.java:734) -At ORG.APACHE.CATALINA.STARTUP.HOSTCONFIG.MANAGEAPP (hostconfig.java:1702) - At sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) -At Sun.reflect.NativeMethodAccessorImpl.invoke (nativemethodaccessorimpl.java:62) -At Sun.reflect.DelegatingMethodAccessorImpl.invoke (delegatingmethodaccessorimpl.java:43) -At Java.lang.reflect.Method.invoke (method.java:498) inAt Org.apache.tomcat.util.modeler.BaseModelMBean.invoke (basemodelmbean.java:300) -At Com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke (defaultmbeanserverinterceptor.java:819) toAt Com.sun.jmx.mbeanserver.JmxMBeanServer.invoke (jmxmbeanserver.java:801) +At Org.apache.catalina.mbeans.MBeanFactory.createStandardContext (mbeanfactory.java:482) -At Org.apache.catalina.mbeans.MBeanFactory.createStandardContext (mbeanfactory.java:431) the At sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) *At Sun.reflect.NativeMethodAccessorImpl.invoke (nativemethodaccessorimpl.java:62) $At Sun.reflect.DelegatingMethodAccessorImpl.invoke (delegatingmethodaccessorimpl.java:43)Panax NotoginsengAt Java.lang.reflect.Method.invoke (method.java:498) -At Org.apache.tomcat.util.modeler.BaseModelMBean.invoke (basemodelmbean.java:300) theAt Com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke (defaultmbeanserverinterceptor.java:819) +At Com.sun.jmx.mbeanserver.JmxMBeanServer.invoke (jmxmbeanserver.java:801) AAt Javax.management.remote.rmi.RMIConnectionImpl.doOperation (rmiconnectionimpl.java:1468) theAt javax.management.remote.rmi.rmiconnectionimpl.access$300 (rmiconnectionimpl.java:76) +At Javax.management.remote.rmi.rmiconnectionimpl$privilegedoperation.run (rmiconnectionimpl.java:1309) -At Javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation (rmiconnectionimpl.java:1401) $At Javax.management.remote.rmi.RMIConnectionImpl.invoke (rmiconnectionimpl.java:829) $ At sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) -At Sun.reflect.NativeMethodAccessorImpl.invoke (nativemethodaccessorimpl.java:62) -At Sun.reflect.DelegatingMethodAccessorImpl.invoke (delegatingmethodaccessorimpl.java:43) theAt Java.lang.reflect.Method.invoke (method.java:498) -At Sun.rmi.server.UnicastServerRef.dispatch (unicastserverref.java:324)WuyiAt Sun.rmi.transport.transport$1.run (transport.java:200) theAt Sun.rmi.transport.transport$1.run (transport.java:197) - At java.security.AccessController.doPrivileged (Native Method) WuAt Sun.rmi.transport.Transport.serviceCall (transport.java:196) -At Sun.rmi.transport.tcp.TCPTransport.handleMessages (tcptransport.java:568) AboutAt Sun.rmi.transport.tcp.tcptransport$connectionhandler.run0 (tcptransport.java:826) $At Sun.rmi.transport.tcp.tcptransport$connectionhandler.lambda$run$0 (tcptransport.java:683) - At java.security.AccessController.doPrivileged (Native Method) -At Sun.rmi.transport.tcp.tcptransport$connectionhandler.run (tcptransport.java:682) -At Java.util.concurrent.ThreadPoolExecutor.runWorker (threadpoolexecutor.java:1142) AAt Java.util.concurrent.threadpoolexecutor$worker.run (threadpoolexecutor.java:617) +At Java.lang.Thread.run (thread.java:745) thecaused 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)} -At org.springframework.beans.factory.annotation.autowiredannotationbeanpostprocessor$ Autowiredfieldelement.inject (autowiredannotationbeanpostprocessor.java:588) $At Org.springframework.beans.factory.annotation.InjectionMetadata.inject (injectionmetadata.java:88) theAt Org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues ( autowiredannotationbeanpostprocessor.java:366) theAt Org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean ( abstractautowirecapablebeanfactory.java:1264) theAt Org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean ( abstractautowirecapablebeanfactory.java:553) theAt Org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean ( abstractautowirecapablebeanfactory.java:483) -At Org.springframework.beans.factory.support.abstractbeanfactory$1.getobject (abstractbeanfactory.java:306) inAt Org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton ( defaultsingletonbeanregistry.java:230) theAt Org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (abstractbeanfactory.java:302) theAt Org.springframework.beans.factory.support.AbstractBeanFactory.getBean (abstractbeanfactory.java:202) AboutAt Org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate (dependencydescriptor.java:208) theAt Org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency ( defaultlistablebeanfactory.java:1138) theAt Org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency ( defaultlistablebeanfactory.java:1066) theAt org.springframework.beans.factory.annotation.autowiredannotationbeanpostprocessor$ Autowiredfieldelement.inject (autowiredannotationbeanpostprocessor.java:585) +... 60 More -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)} theAt Org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound ( defaultlistablebeanfactory.java:1493)BayiAt Org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency ( defaultlistablebeanfactory.java:1104) theAt Org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency ( defaultlistablebeanfactory.java:1066) theAt org.springframework.beans.factory.annotation.autowiredannotationbeanpostprocessor$ Autowiredfieldelement.inject (autowiredannotationbeanpostprocessor.java:585) -... More
Starting this is due to a low-level error, which has the following configuration in Applicationcontext.xml:
1 <Beanclass= "Org.mybatis.spring.mapper.MapperScannerConfigurer">2 < Propertyname= "Basepackage"value= "Com.xxx.xxx.dao.**.*" />3 < Propertyname= "Sqlsessionfactorybeanname"value= "Sqlsessionfactory" />4 </Bean>
The value of Basepackage should be the name of the specified package and the file name I specified.
Change to the following configuration, compile normal pass:
1 <Beanclass= "Org.mybatis.spring.mapper.MapperScannerConfigurer">2 < Propertyname= "Basepackage"value= "Com.xxx.xxx.dao" />3 < Propertyname= "Sqlsessionfactorybeanname"value= "Sqlsessionfactory" />4 </Bean>
Resolve Spring MyBatis Integration after mapper interface injection failure