扫描mybatis mapper接口口生成了代理对象为什么可以使用@Autowired

13303人阅读
java(54)
mybatis(16)
springMvc(16)
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.fkhd.whiteshirt.daos.UserMapper] 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)}
spring-mybatis:
&!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --&
&bean id=&sqlSessionFactory& class=&org.mybatis.spring.SqlSessionFactoryBean&&
&property name=&dataSource& ref=&localdataSource& /&
&property name=&mapperLocations& value=&classpath:mapper/*.xml&&&/property&
&!-- DAO接口所在包名,Spring会自动查找其下的类 --&
&bean class=&org.mybatis.spring.mapper.MapperScannerConfigurer&&
&property name=&basePackage& value=&com.fkhd.whiteshirt.daos& /&
&property name=&sqlSessionFactoryBeanName& value=&sqlSessionFactory&&&/property&
serviceImpl:
@Autowired
private UserMapper userM
修改serviceImpl为:
@Autowired(required=false)
private UserMapper userM
不报错了,但userMapper为null,也不注入了,这样解决虽然不报错了,但项目无法继续进行,所以另寻方法。
各种解决办法都试了后,没解决,所以就自己在重新看看自己的项目。
我的错误原因在:web.xml启动是没加载soring-mybatis.xml,加上以后问题解决。
我的这个原因在于web.xml没有加载,仅是问题一种。可以看看你的是否加载,如果加载了就去看看其他原因吧!
可以运行的配置:
spring-mybatis(未修改):
&!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --&
&bean id=&sqlSessionFactory& class=&org.mybatis.spring.SqlSessionFactoryBean&&
&property name=&dataSource& ref=&localdataSource& /&
&property name=&mapperLocations& value=&classpath:mapper/*.xml&&&/property&
&!-- DAO接口所在包名,Spring会自动查找其下的类 --&
&bean class=&org.mybatis.spring.mapper.MapperScannerConfigurer&&
&property name=&basePackage& value=&com.fkhd.whiteshirt.daos& /&
&property name=&sqlSessionFactoryBeanName& value=&sqlSessionFactory&&&/property&
serviceImpl(未修改):
@Autowired
private UserMapper userM
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:172421次
积分:2689
积分:2689
排名:第13657名
原创:96篇
转载:13篇
评论:56条
(3)(1)(2)(4)(1)(3)(5)(5)(10)(1)(3)(11)(10)(13)(3)(9)(22)(2)(1)8487人阅读
Spring/SpringMVC(7)
mybatis/ibatis(3)
整合springmvc和mybatis时,启动服务报错如下:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [demo.dao.PersonMapper] 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)}
错误重点挑出来:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [demo.dao.PersonMapper] found for dependency
PersonMapper这个接口的实现对象没有注入!
我的servicer接口实现类代码:
@Service("personService")
public class PersonServiceImpl implements IPersonService {
@Autowired
private PersonMapper personM
public Person queryById(Integer id) {
return this.personMapper.selectByPrimaryKey(id);
启动时这一段代码中@Autowired
personMapper引起错误的,没有在容器中找到对象。
可能出现错误的原因:
1、没有在配置文件中添加如下注解配置:(我添加了)
base-package="demo.*" /&
2、那么是不是配置文件错误导致文件没有加载,从而引起没有注解进来。于是我把代码改成了下段代码:
@Service("personService")
public class PersonServiceImpl implements IPersonService {
private PersonMapper personM
public Person queryById(Integer id) {
ApplicationContext
ac = new ClassPathXmlApplicationContext("classpath:application/applicationContext-datasource.xml");
personMapper = (PersonMapper) ac.getBean("personMapper");
return this.personMapper.selectByPrimaryKey(id);
ok,可以运行,说明配置文件没有问题。
那么之前那样是不是根本没有加载applicationContext-datasource.xml文件,于是我在jdbc.properties文件中改了一个key值(xml文件中引用了),然后把service实现类中的有关代码删除,启动看是否报错,如果报错说明加载了xml文件,如果不报错说明没有加载文件。结果木有报错!!!
于是得出木有加载applicationContext-datasource.xml文件!
下面是我的web.xml配置:
&contextConfigLocation&
classpath*:application/applicationContext*.xml
下面是我的数据库mybatis相关配置:
id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"&
name="dataSource" ref="defaultDataSource" /&
name="mapperLocations" value="classpath:mapper/*.xml"&&
class="org.mybatis.spring.mapper.MapperScannerConfigurer"&
name="basePackage" value="demo.dao" /&
name="sqlSessionFactoryBeanName" value="sqlSessionFactory"&&
id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"&
name="dataSource" ref="defaultDataSource" /&
仔细考察这两个配置,觉得没啥问题,然后看到web.xml中contextConfigLocation这个是怎么加载指定的配置文件的,然后百度了,解决方法:
在web.xml中添加上下文监听器
&org.springframework.web.context.ContextLoaderListener&
关于contextConfigLocation了解点击:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:91648次
积分:1505
积分:1505
排名:千里之外
原创:55篇
评论:30条
(4)(2)(1)(2)(1)(4)(5)(8)(6)(2)(1)(5)(8)(10)8862人阅读
Spring搭建开发环境实例详解(5)
SpringMVC(5)
Spring(7)
好久不搭架构,今天使用spring+springmvc整合mabytis的时候,坑爹的两个问题发生了。
花了一晚上解决这两个问题。现在将错误经验总结分享下,避免以后遇到坑继续往里跳。
(本文章分享在CSDN平台,更多精彩请阅读 东陆之滇的csdn博客:)
1. 单元测试的时候,单元测试失败报错: A ServletContext is required to configure default servlet handling
十月 28, :33 下午 org.springframework.context.support.GenericApplicationContext refresh
警告: Exception encountered during context initialization - cancelling refresh attempt
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultServletHandlerMapping' defined in class path resource [org/springframework/web/servlet/config/annotation/DelegatingWebMvcConfiguration.class]: Bean instantiation via f nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.HandlerMapping]: Factory method 'defaultServletHandlerMapping' nested exception is java.lang.IllegalArgumentException: A ServletContext is required to configure default servlet handling
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1119)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1014)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:125)
at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:109)
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:261)
at org.springframework.test.context.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:68)
at org.springframework.test.context.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:86)
at org.springframework.test.context.DefaultTestContext.getApplicationContext(DefaultTestContext.java:72)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:212)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:200)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:259)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:261)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:219)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:83)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:68)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:163)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.HandlerMapping]: Factory method 'defaultServletHandlerMapping' nested exception is java.lang.IllegalArgumentException: A ServletContext is required to configure default servlet handling
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
... 42 more
&?xml version="1.0" encoding="UTF-8"?&
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="/xml/ns/javaee" xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_2_5.xsd" version="2.5"&
&Archetype Created Web Application&
&index.jsp&
&contextConfigLocation&
&classpath:spring_ynyn_dependence.xml&
&characterEncoding&
&org.springframework.web.filter.CharacterEncodingFilter&
&forceEncoding&
&encoding&
&characterEncoding&
&dispatcherServlet&
org.springframework.web.servlet.DispatcherServlet
&contextConfigLocation&
classpath:spring-mvc.xml
&dispatcherServlet&
&HiddenHttpMethodFilter&
&org.springframework.web.filter.HiddenHttpMethodFilter&
&HiddenHttpMethodFilter&
&dispatcherServlet&
资源以及配置文件都放在src/main/respources目录下。
springMVC的配置文件spring-mvc.xml
&?xml version="1.0" encoding="UTF-8"?&
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:util="http://www.springframework.org/schema/util"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task.xsd"&
base-package="org.byron4j.ynyn.*" &
type="annotation" expression="org.springframework.stereotype.Controller" /&
register-defaults="true"&
class="org.springframework.http.converter.StringHttpMessageConverter"&
value="UTF-8" /&
class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"&
name="supportedMediaTypes" value="application/charset=UTF-8" /&
name="features"&
&WriteMapNullValue&
&WriteNullStringAsEmpty&
mapping="/js/**" location="/js/" /&
mapping="/css/**" location="/css/" /&
mapping="/images/**" location="/images/" /&
class="org.springframework.web.servlet.view.InternalResourceViewResolver"&
name="viewClass"
value="org.springframework.web.servlet.view.JstlView" /&
name="prefix" value="/WEB-INF/jsp/"&&
name="suffix" value=".jsp"&&
sprin框架的配置文件spring_ynyn_dependence.xml
&?xml version="1.0" encoding="UTF-8"?&
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.1.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task.xsd"&
id="valueSettings" location="classpath:globalConfig.properties" /&
base-package="org.byron4j.ynyn.*" &
type="annotation" expression="org.springframework.stereotype.Controller" /&
resource="classpath*:byron4j_ynyn_datasource.xml"/&
数据源配置文件byron4j_ynyn_datasource.xml
&?xml version="1.0" encoding="UTF-8"?&
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"&
id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"&
name="configLocation" value="classpath:byron4j_ynyn_mybatis-config.xml" /&
name="mapperLocations" value="classpath*:sqlmap/*.xml" /&
name="dataSource" ref="dataSource" /&
class="org.mybatis.spring.mapper.MapperScannerConfigurer"&
name="basePackage" value="org.byron4j.ynyn.mapper" /&
name="sqlSessionFactoryBeanName" value="sqlSessionFactory"&&
id="myTxManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"&
name="dataSource" ref="dataSource"&&
transaction-manager="myTxManager" /&
id="dataSource"
class="mons.dbcp.BasicDataSource"
destroy-method="close"&
name="driverClassName" value="org.sqlite.JDBC"/&
name="url" value="jdbc:sqlite:E:\ynyn.sqlite"/&
name="username" value="username"/&
name="password" value="password"/&
name="maxActive" value="200"/&
name="minIdle" value="10"/&
name="maxIdle" value="50"/&
name="initialSize" value="50"/&
name="logAbandoned" value="true"/&
name="removeAbandoned"
value="true"/&
name="removeAbandonedTimeout" value="180"/&
name="maxWait" value="1000"/&
name="timeBetweenEvictionRunsMillis" value="10000"/&
name="numTestsPerEvictionRun" value="10"/&
name="minEvictableIdleTimeMillis" value="10000"/&
name="validationQuery" value="SELECT 1 LIMIT 1 "/&
mybatis配置文件byron4j_ynyn_mybatis-config.xml
&?xml version="1.0" encoding="UTF-8"?&
&!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd"&
单元测试基类BaseMockitoTestCase.java
src/test/java目录下:
package org.byron4j.ynyn.
import org.junit.A
import org.junit.B
import org.junit.runner.RunW
import org.mockito.MockitoA
import org.springframework.test.context.ContextC
import org.springframework.test.context.junit4.SpringJUnit4ClassR
* Mock测试类基类--配置文件载入类
*: BaseSpringTestCase
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:spring_ynyn_dependence.xml" })
public class BaseMockitoTestCase {
public void beforeInvoke() {
System.out.println("调用前工作....");
MockitoAnnotations.initMocks(this);
public void afterInvoke() {
System.out.println("调用完成.");
单元测试类StudentTest.java出问题了
package org.byron4j.ynyn.
import org.junit.T
import org.springframework.beans.factory.annotation.A
import org.byron4j.ynyn.base.BaseMockitoTestC
import org.byron4j.ynyn.mapper.TaskerM
import org.byron4j.ynyn.mode.T
public class StudentTest extends BaseMockitoTestCase{
@Autowired
StudentMapper studentM
public void selectTest4Success(){
Student record = new Student();
record.setId(1);
Student resultStudent = studentMapper.selectByPrimaryKey(record);
System.out.println(resultStudent);;
执行单元测试的时候,报错了警告: Exception encountered during context initialization - cancelling refresh attempt
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘defaultServletHandlerMapping’ defined in class path resource [org/springframework/web/servlet/config/annotation/DelegatingWebMvcConfiguration.class]: Bean instantiation via f nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.HandlerMapping]: Factory method ‘defaultServletHandlerMapping’ nested exception is java.lang.IllegalArgumentException: A ServletContext is required to configure default servlet handling
这时候去检查spring-core和springMVC的两个配置文件,异常提示信息大意是ServletContext需要配置默认servlet处理映射器。一脸懵逼。。。最后发现是两个配置文件的context和包扫描配置有问题,springServlet上下文应该在spring核心配置中( spring_ynyn_dependence.xml )处理,需要使用 &context:annotation-config /& 进行配置。调整后的配置是:
1.sprin框架的配置文件spring_ynyn_dependence.xml调整
将以下配置内容
&context:component-scan base-package="org.byron4j.ynyn.*" &
&context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /&
&/context:component-scan&
&context:annotation-config /&
2.springMVC的配置文件spring-mvc.xml调整
&context:component-scan base-package="com.crfchina.mcp.*" &
&context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /&
&/context:component-scan&
再次执行单元测试,OK。
警告: Exception encountered during context initialization - cancelling refresh attempt
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'taskListenerConfigController': Injection of autowired nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.byron4j.mcp.service.TaskListenerConfigService org.byron4j.mcp.controller.TaskListenerConfigController.taskListenerConfigS nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'taskListenerConfigServiceImpl': Injection of autowired nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.byron4j.mcp.mapper.TaskerMapper org.byron4j.mcp.service.impl.TaskListenerConfigServiceImpl.taskerM nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.byron4j.mcp.mapper.TaskerMapper] 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:1210)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:663)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:629)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:677)
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:548)
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:489)
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.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1081)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1877)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
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)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.byron4j.mcp.service.TaskListenerConfigService org.byron4j.mcp.controller.TaskListenerConfigController.taskListenerConfigS nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'taskListenerConfigServiceImpl': Injection of autowired nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.byron4j.mcp.mapper.TaskerMapper org.byron4j.mcp.service.impl.TaskListenerConfigServiceImpl.taskerM nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.byron4j.mcp.mapper.TaskerMapper] 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:561)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
... 33 more
解决第一个问题,单元测试后,部署该项目启动时,疯狂报错nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.byron4j.mcp.mapper.TaskerMapper] 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)}。多次检查,发现springMVC配置文件中也需要加载mybatis配置,前面我仅仅在spring上下文核心配置文件(spring_ynyn_dependence.xml)中做了配置。
在spring-mvc.xml文件最后引入加载mybatis配置:
resource="classpath*:byron4j_ynyn_datasource.xml"/&
重新部署应用启动服务无措,发起请求验证OK。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:129311次
积分:2728
积分:2728
排名:第13444名
原创:113篇
转载:21篇
译文:29篇
评论:10条
阅读:1529
文章:14篇
阅读:1813
阅读:8279
(21)(7)(9)(6)(6)(5)(1)(3)(7)(28)(43)(6)(1)(17)(2)(1)

我要回帖

更多关于 mapper接口传值 的文章

 

随机推荐