开始之前我们先落实一些叫法
java.lang.System 全限定名
java.lang 包名
System 类名
OK,通过Spring整合MyBatis,sqlSessionFactory配置如下
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="typeAliasesPackage" value="com.myapp" /> <property name="mapperLocations" value="classpath:/mybatis/**/*Mapper.xml" /> </bean>
其中typeAliasesPackage的作用是自动扫描Entity,这个时候会自动取对应包中不包括包名的简单类名作为包括包名的别名,及只取类名。多个package之间可以用逗号或者分号等来进行分隔。
mapperLocations的作用是指定Mapper文件的位置
启动的时候停在这个位置。
:oejs.Server:jetty-7.6.2.v20120308 :/web:Initializing Spring root WebApplicationContext
问题解决
经检查发现,发现项目中存在一个类,与项目中某Mapper配置文件中resultType指向的类的全限定名不同,但类名相同的类存在。将该类名修改后正常启动。
后续测试
后续测试了一下,无论Mapper.xml是否有调用到,只要项目中存在两个类的类名相同就会无法启动,哪怕全限定名不同也不行。
另外需要注意的是,
1. 不单指与MyBatis有关的Entity。哪怕是同一个类名的Controller存在也无法启动;
2. 相同类名不区分大小写。
猜想
估计MyBatis配置中typeAliasesPackage扫描到的类,只保存了小写形式的类名,所以比如在配置文件中的resultType可以直接写string这种形式。通过读源码证实了猜想结果。
相关推荐
spring整合mybatis时需要用到的配置文件
spring整合Mybatis纯净项目,基础搭建,下载就用,包含整套源码,jar包
一个完整而简单SSM项目,包含SQL脚本、代码与学习笔记。内容Spring如何整合SpringMVC与Mybatis以及整合原理的源码分析。
IDEA: spring+mybatis+springMVC SSM框架(二) spring 整合 Mybatis 以及分页插件 PageHelper
Spring整合Mybatis源码解析
spring_mybatis 整合jar包,基本常用jar包的整合,。。。。。。。。。。。。。。。
spring整合mybatis3所需的各种jar文件
使用spring+mybatis自动生成实体类工具包,部分错误解决方案等
Spring-Mybatis整合包含基本的增删改查简单易懂!
spring cloud整合mybatis,spring cloud整合mybatis,spring cloud整合mybatis
spring整合mybatis
Spring整合MyBatis完整实例 最新 +详细注释 标准的MVC模式 包含详细注释
Spring 整合mybatis(注解&xml版声明式事务).pdf
该压缩包包含了mybatis与spring整合的全部jar包,为学习整合ssm框架提供一个环境
Spring整合Mybatis项目Spring整合Mybatis项目Spring整合Mybatis项目Spring整合Mybatis项目
spring整合mybatis所需jar包
Spring整合Mybatis项目-影视资源管理 代码方便初学者理解学习
spring整合mybatis实例,可以通过test1类测试
Spring mvc整合mybatis例子