Spring集成mybaties,用配置文件将映射器接口注入业务层,无法代理生成实现类

Spring集成mybaties,用配置文件将映射器接口注入业务层,做单元测试时,控制层可以正常返回数据,但是部署到tomcat上,启动就报错,信息如下。
1. 单元测试时正常返回数据
图片说明
2.部署到tomcat 启动报错
严重: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping': Invocation of init method failed; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.alibaba.druid.pool.DruidDataSource] for bean with name 'dataSource' defined in file [G:\IdeaProjects\firstSpring\target\firstSpring\WEB-INF\classes\spring-mybatis.xml]; nested exception is java.lang.ClassNotFoundException: com.alibaba.druid.pool.DruidDataSource
Related cause: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.alibaba.druid.pool.DruidDataSource] for bean with name 'dataSource' defined in file [G:\IdeaProjects\firstSpring\target\firstSpring\WEB-INF\classes\spring-mybatis.xml]; nested exception is java.lang.ClassNotFoundException: com.alibaba.druid.pool.DruidDataSource
Related cause: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.mybatis.spring.SqlSessionFactoryBean] for bean with name 'sqlSessionFactory' defined in file [G:\IdeaProjects\firstSpring\target\firstSpring\WEB-INF\classes\spring-mybatis.xml]; nested exception is java.lang.ClassNotFoundException: org.mybatis.spring.SqlSessionFactoryBean
Related cause: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.mybatis.spring.mapper.MapperScannerConfigurer] for bean with name 'org.mybatis.spring.mapper.MapperScannerConfigurer#0' defined in file [G:\IdeaProjects\firstSpring\target\firstSpring\WEB-INF\classes\spring-mybatis.xml]; nested exception is java.lang.ClassNotFoundException: org.mybatis.spring.mapper.MapperScannerConfigurer

Caused by: java.lang.ClassNotFoundException: org.mybatis.spring.mapper.MapperScannerConfigurer
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1892)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:250)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:401)
at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1432)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1377)
... 81 more
3. 配置文件
spring-mvc
图片说明
Spring-mybatis

 <util:properties id="cfg"    location="classpath:config.properties"/>  
   <!--配置DruidDataSource连接池 -->
   <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
        destroy-method="close" init-method="init" lazy-init="true">
        <property name="driverClassName" value="#{cfg.driver}" />
        <property name="url" value="#{cfg.url}" />
        <property name="username" value="#{cfg.username}" />
        <property name="password" value="#{cfg.password}" />
        <!-- 初始化连接大小 -->
        <property name="initialSize" value="#{cfg.initialSize}" />
        <!-- 连接池最大数量 -->
        <property name="maxActive" value="#{cfg.maxActive}" />
        <!-- 连接池最小空闲 -->
        <property name="minIdle" value="#{cfg.minIdle}" />
        <!-- 获取连接最大等待时间 -->
        <property name="maxWait" value="#{cfg.maxWait}" />
     </bean>
     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
       <property name="dataSource" ref="dataSource"></property>
       <property name="configLocation" value="classpath:mybatis-config.xml"></property>
       <!-- 自动扫描mapping.xml文件 -->
       <property name="mapperLocations" >
            <list>
             <value>classpath:mapper/*.xml</value>
            </list>
        </property>
     </bean>
    <!-- Mapper接口所在包,Spring会自动查找其下的Mapper -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
        <property name="basePackage" value="rush.dao"/>
    </bean>
  1. 另外,在将映射器注入到业务层时,提示: 图片说明 困惑,求大神帮忙解答,谢谢!

2个回答

是你的com.alibaba.druid.pool.DruidDataSource这个类找不到啊, 检查一下jar包在不, 如果是用maven构建, 需要有下面的依赖

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>druid</artifactId>
     <version>1.1.5</version>
</dependency>

chemitry
chemitry 回复COCO_AS: 问题已解决,你说得对,没用maven依赖,没有自动在lib文件夹下生成
接近 2 年之前 回复
chemitry
chemitry durid不是依赖进来的,手动导入的。
接近 2 年之前 回复
yujiaao
COCO_AS 你的dependecy scope是不是设成test了啊? tomcat/webapps/yourproject/WEB-INF/lib下有这个druid.jar?
接近 2 年之前 回复
chemitry
chemitry 测试类能够通过,而且jar包也有
接近 2 年之前 回复

肯定是缺jar包。jar包发没有发布

chemitry
chemitry 说的对,谢谢,已解决
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Mybaties和Spring框架的整合(spring配置文件生成接口实现类的方法)
准备工作 准备:jdbc.properties   要测试的接口   接口的映射文件 &amp;lt;!--接口--&amp;gt;     public interface BookMapper {     //根据编号查询书本信息     public Book queryById(int id); 第一步:整合数据库资源 &amp;lt;context:property-placeholder loca...
业务层实现类
本课程主要读者全面细致的讲解Java编程的所有核心知识,从基础语法、到面向对象以及Java的实际应用进行完整讲解。官方QQ群:612148723。
Spring使用注解注入接口实现类
spring注入接口实现类
Spring,Springmvc接口实现类 注入错误
[size=16px][b]有一个接口实现类rn@Service("teamService")rnpublic class TeamServiceImpl implements TeamService rnrn然后我再controller里面注入这个接口实现类rn@Controllerrn@RequestMapping("/team")rnpublic class TeamController rnrn @Autowiredrn @Qualifier("teamService")rn private TeamServiceImpl teamService;rnrn无论是上面那样写,还是@resource("teamService"),或者@autowired都有错误。rn求各位大神说一下这是为什么?[/b][/size][size=18px][/size]rnrn严重: StandardWrapper.Throwablernorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'teamController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.qtalk.service.impl.TeamServiceImpl com.qtalk.controller.TeamController.teamService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.qtalk.service.impl.TeamServiceImpl] 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.annotation.Qualifier(value=teamService)rn at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334)rn at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)rn at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)rn at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)rn at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)rn at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)rn at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)rn at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)rn at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)rn at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)rn at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)rn at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:667)rn at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:633)
[MyBatis日记](3)映射器配置文件与映射器接口
前一篇文章中我们介绍了如何使用MyBatis创建一个简单的项目,我们已经看见了一些映射器配置文件中配置基本的映射语句,以及怎样使用SqlSession对象调用它们的例子。 1. 前景回顾 现在让我们看看在com.sjf.bean包中studnetMapper.xml配置文件内,如何配置id 为"getStudentByID"的SQL语句的: xml version
Spring用@Autowire向一个类注入一个接口的两个实现类
@Service public class AaaService implements IChangePassword { @Override public void changePassword(String username, String password) { } } @Service public class BbbService implements IC
mybaties配置文件
-
spring接口实现类 依赖注入
Java code public Interface MobileInterface{ public boolean dialUp(long number); } Person类: Java code public class Person{ private MobileInterface mobileInterface; public bo
spring依赖注入、接口和实现类
两个问题rn1.spring的依赖注入rn在applicationcontext.xml中配置bean,注入需要组件,与直接在bean的类中new一个实例,到底有什么不同?rnrn2.接口和实现类rn许多spring的例子中,一个模块都是先写一个接口,在写继承这个接口的实现类,为什么要这样写?rnrn请大哥详细解释一下
Spring 集成 MyBatis: 自动注入映射器导致项目启动报错
Spring 集成 MyBatis: 自动注入映射器导致项目启动报错: 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name '
Spring 注入实现类报错问题
在使用spring 时,假如在controller中注入了impl 实现类可能会出现报错的情况。 为什么是“可能”,① 假如没用使用spring aop ,则不会报错。                             ② 类没用使用接口也不会报错。 1、为什么使用 aop 会导致报错:       spring aop的实现是基于动态代理       如果目标对象实现了接口,那么...
MyBatis集成到Spring之注入Dao接口
MyBatis 的 MapperScannerConfigurer 可以将 Dao 接口和 Mapper 文件注入到 Spring 容器中 更多精彩 更多技术博客,请移步 asing1elife’s blog 配置 &amp;lt;bean class=&quot;org.mybatis.spring.mapper.MapperScannerConfigurer&quot;&amp;gt; ... &amp;lt;/bean&amp;gt;...
业务层标准实现类
业务设计是整个项目中的灵魂所在,更是一位有经验的开发者的从业技能。本课程在读者学习完Java课程的基础之上进行全面深入的实例分析。官方QQ群:612148723。
通过配置文件切换接口的实现类
1.首先创建配置文件 switch.propertiestype=jdbc #type=xml2.代码中获取配置文件的方式@WebServlet(urlPatterns="/InitServlet",name="InitServlet",loadOnStartup=1) public class InitServlet extends HttpServlet { private stati
映射器配置文件
映射器配置文件案例背景employee员工表、dept部门表基本配置deptMapper.xml配置如下:<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
接口用实现类生成以后,要不要释放?
ITest = Interfacernend;rnTTest = class(TInterfaceObject, ITest)rnend;rn...rnvarrn t: ITest;rn..rn t := TTest.Create;rnrn...rn 后面t要不要free, 这样实现类会不会一直占用内存rnrnrn还有一个小问题rnrnTMyRec = recordrn a: array[0..49] of Char;rnend;rnrn下面rnr := TMyRec;rnSizeOf(r.a)可以rn但是我不想用变量,取得a长度rnrnSizeOf(TMyRec.a)不行rnrnrnrn
在Spring中注入配置文件
在项目工程中的可能会存在修改的属性,一般都是配置在外置的配置文件(.properties,.json,*.xml…)中。在使用时通过IO流读取并解析。 Spring框架对此进行了封装可以很方便的进行加载解析。 例如,存在文件 project.properties# user user.name = admin user.pass = root将配置文件注入spring存在两种方式: 在spring的
Spring 配置文件注入
Spring 配置文件注入 一、Spring配置文件注入 package com.zxguan.demo; public class Person { private String name; private int age; public Person() { ...
Spring如何注入配置文件
这个问题我不太好描述.rn但是我首先说,不是spring已经实现的 FileSystemResource ,ClassPathResource,UrlResource 等rn这些仍然需要自己写代码.rn我的上司的意思是:通过配置文件指定路径,然后让spring自己将配置文件的内容自己注入到相应的类中.rn我不知道能不能实现,不知道具体是指什么,我也知道自己读也不麻烦,毕竟spring已经实现了那么多的resource.rn我想知道他的具体意思到底是什么?
spring配置文件的注入问题
求解:rn这样写的时候没有错rn[code=XML]rn rn rn rn rn[/code]rnrn这样写报错了:rn[code=XML] rn rn rn rn rn rn rn[/code]rnrn[color=#FF0000]org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'organuserServices' defined in ServletContext resource [/WEB-INF/classes/dataAccessContext.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type [java.util.ArrayList] to required type [com.core.DAO.EntityDao] for property 'entityDao'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [java.util.ArrayList] to required type [com.core.DAO.EntityDao] for property 'entityDao': no matching editors or conversion strategy found[/color]
Spring的properties配置文件注入
1. 使用PropertiesFactoryBean 配置文件 &amp;lt;bean id=&quot;config&quot; class=&quot;org.springframework.beans.factory.config.PropertiesFactoryBean&quot;&amp;gt; &amp;lt;property name=&quot;locations&quot;&amp;gt; &amp;lt;list&amp;gt; &amp;lt;value&amp;
关于spring dao接口无法注入的问题。
[color=#FF0000]这个是UserMapper:[/color]rn[img=https://img-bbs.csdn.net/upload/201804/24/1524503846_839933.png][/img]rnrn[color=#FF0000]这样子写是正确的,程序可以正常运行:[/color]rn[img=https://img-bbs.csdn.net/upload/201804/24/1524503869_617891.png][/img]rnrn[color=#FF0000]如下,会提示没有bean:[/color]rn[img=https://img-bbs.csdn.net/upload/201804/24/1524503907_82927.png][/img]rnrn错误信息:rnorg.springframework.beans.factory.NoSuchBeanDefinitionException: [color=#FF0000]No qualifying bean of type [dao.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)[/color]
Spring(14):使用MapperFactoryBean注入映射器
Spring(14):使用MapperFactoryBean注入映射器
mybaties防止注入
都没测试过。。。。慎用 MySql: select * from t_user where name like concat('%', #{name}, '%') Orcle: select * from t_user where name like '%' || #{name} || '%' sqlServer select * from t_user where name li...
实现类无法重写接口方法
实现类无法重写接口方法 报错: The method * of type * must override a superclass method Eclipse 默认的 Compiler是jdk5,(5不支持@Override等形式的批注), 只要把它改为1.7以上就可以了。 方法:将window-&amp;gt;preferences-&amp;gt;Java-compiler中的Co...
spring为何要注入接口,而注入接口的实现类就会报错
  首先说明,注入的对象确实为实现类的对象。(并不是实现类的代理对象,注入并不涉及代理)   如果只是单纯注入是可以用实现类接收注入对象的,但是往往开发中会对实现类做增强,如事务,日志等,实现增强的AOP技术是通过动态代理实现的,而spring默认是JDK动态代理,对实现类对象做增强得到的增强类与实现类是兄弟关系,所以不能用实现类接收增强类对象,只能用接口接收。如: //接口:IA ...
spring 注入@Autowired @Qualifier 一个接口多个实现类
spring 注入的一般是接口,这样会更加灵活,优雅。 但是如果一个接口有多个实现类,spring怎么注入接口呢? @Autowired  @Qualifier 配合使用,用 @Qualifier 指定那个实现类 举例:         @Autowired @Qualifier("RedisTokenManager") private TokenManager rds;
spring一个接口多个实现类的注入 和 使用配置文件控制的场景
1.一个接口多个实现类怎么确定注入的是哪个? 方法1@Autowired+@Qualifier(name=“spring管理的实现类名称”) spring管理的实现类名称 = 类全名,首字母小写 例如 类名叫做Test,那么name=“test” // @Autowired // @Qualifier(&quot;serviceImpl1&quot;) // ISerivce service1;...
spring自动注入接口的多个实现类(结合策略设计模式)
在使用spring开发的时候,有时候会出现一个接口多个实现类的情况,但是有没有有时候有这样一种情况,就是你的逻辑代码里面还不知道你需要使用哪个实现类,就是比如说:你去按摩,按摩店里面有几种会员打折,比如有,vip、svip和普通用户,那按摩店里面是不是需要对这些会员定义好不同的折扣,然后根据每个用户不同的会员计算出不同的消费情况 虽然这样的情况,对于一般人来说,第一眼肯定就是说,直接加 if e...
Spring注入接口的实现类报错分析,dao无法注入
这里自我总结下一般注入报错问题可能情况:   1.dao实现类未添加注解@Repository  (或者添加bean配置,我本身一直不喜欢配置,所以基本没有使用配置,需要这种方式自行百度,我就不累赘)   2.实现多个实现未指定实现类,引入dao自动装配时(@Autowired)添加注解@Qualifaer(value=&quot;xxxx&quot;)指定实现类几种装配类型参考博客:https://www.cnbl...
spring中,一个接口两个实现类,注入问题
interface:Cus1    @Component 实现:Customer implents Cus1(){ syso("1") } @Component Customer2 implents Cus1(){ syso("1") } 属性注入: @Service(value="customerService") CustomerService(){ @
【mybatis】【配置文件+集成Spring】
简介 于Hibernate不同,mybatis集成Spring,也保留了自己的配置文件 myBatis的配置文件 1.用设置配置的属性 比如:延迟加载的配置项 2.用给非domain设置别名 (domain类的别名在Spring配置文件中设置) 比如:给第三方二级缓存配置别名 <!DOCTYPE configuration PUBLIC "-/
Spring + Spring MVC + Mybaties
spring 、spring mvc 、mybaties简单整合,基本配置及日志,可直接开发自己的模块
spring配置-mybatis的mapper接口动态代理生成实现类并注入
使用mybaitis的mapper接口执行sql语句时,我们拿到其实是接口实现类的代理,这个代理类是由mybatis使用动态代理生成的接口实现类。 mybatis通过配置 MapperFactoryBean来生成Mapper接口的代理。如: <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <pr
MvpHelper-v2 一键生成接口与实现类
一款适用于 Intellij IDEA 和 Android Studio 的插件, 可用于为MVP架构生成接口以及实现类, 解放双手. 一键生成Model, View, Presenter. 懒人利器.
业务层接口
本课程主要读者全面细致的讲解Java编程的所有核心知识,从基础语法、到面向对象以及Java的实际应用进行完整讲解。官方QQ群:612148723。
spring 注入接口注意事项
今天讨论的是一点注意事项,大家都知道spring 一个很大的有点就是ioc,DI,今天想着接口注入能不能在属性配置中配置接口,然后看下回报出什么错误?相关测试配置如下: &amp;lt;bean id=&quot;documentManager&quot; class=&quot;com.itheima12.spring.iocdi.document.DocumentManager&quot;&amp;gt;            &amp;lt;!--  ...
Spring的接口注入
我在使用接口注入时,犯了个错误,项目运行时出现“The requested resource (Servlet action is not available) is not available.”的提示。当我不经意地往控制栏里那么一瞅时,我发现了一条重要线索:“Failed to convert property value of type [com.sun.proxy.$Proxy1] to r
Spring接口注入
接口注入:这个方法在这就是获取aplicationContext,然后在其他地方调用 如下类(生成): package com.atguigu.crowdfunding.portal.web; import org.springframework.beans.BeansException; import org.springframework.context.Applicati
Java DAO模式 业务层实现类
本博客根据《李兴华--java8编程开发入门》视频整理而来。业务层实现类的核心功能:(1) 负责控制数据库的打开和关闭,当存在了业务层对象后其目的就是为了操作数据库,即:业务层对象实例化之后就必须准备好数据库连接;(2)根据DAOFactory调用getIEmpDAOInstance()方法而后取得IEmpDAO接口对象。业务层的实现类保存在impl子包中。范例:定义EmpServiceImpl子...
相关热词 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天 c#字典序排序 c# 截屏取色 c#中的哪些属于托管机制