`

Spring整合MyBatis 由于类名相同导致启动异常

阅读更多

开始之前我们先落实一些叫法

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的过程中,我们需要在该文件中声明以下关键组件: 1. **数据源(DataSource)**: 数据源定义了如何连接到数据库。Spring支持多种数据源实现,如Apache的DBCP或Tomcat的JDBC数据源。配置中通常...

    Spring整合Mybatis+SpringIOC

    **Spring整合Mybatis** 1. **配置Mybatis-Spring桥接器** 首先,我们需要引入Mybatis和Spring的相关依赖。在`pom.xml`文件中添加Mybatis、Mybatis-Spring和Spring的依赖项。 2. **创建Mybatis配置文件** 创建`...

    spring+springmvc+mybatis的整合

    这里就要导入mybatis和spring的整合包了,这里sqlsession中也要导入mybatis的配置文件 2.6 spring-bean 配置mapper自动扫描 MapperScannerConfigurer将扫描basePackage所指定的包下的所有接口类(包括子类), ...

    spring+mybatis+oracle简易案例

    总结,"spring+mybatis+oracle简易案例"是一个整合了Spring框架、MyBatis ORM和Oracle数据库的基础应用示例,展示了如何在Java项目中实现数据的CRUD操作。通过学习和实践这个案例,开发者可以深入理解这三个技术的...

    Java EE 框架整合 开发入门到实战-Spring+Spring MVC+MyBatis微课版复习笔记

    此外,了解Spring框架整合MyBatis及Spring MVC的细节,对于开发基于Java EE的企业级应用非常关键。Spring MVC负责Web层的请求处理,MyBatis则是持久层框架,能够简化数据库操作。熟练掌握这些框架的整合使用,能够...

    spring、mybatis整合

    在Spring和MyBatis的整合过程中,我们通常会利用Spring的IoC(Inversion of Control,控制反转)特性来管理MyBatis的SqlSessionFactory和SqlSessionTemplate,以及配置MyBatis的Mapper接口和Mapper XML文件,以便...

    spring boot 整合mybatis+MySQL+freemaker+druid

    本项目是关于如何将Spring Boot与MyBatis、MySQL数据库、FreeMarker模板引擎和Druid数据源进行整合的实践教程,适用于初学者学习和参考。 1. **Spring Boot与MyBatis整合**: Spring Boot提供了对MyBatis的自动...

    Spring Boot整合MyBatis连接 SQL Server(2)

    在本教程中,我们将深入探讨如何在Spring Boot项目中整合MyBatis框架,以便与SQL Server数据库进行交互。我们将特别关注基于XML的SQL映射文件,这是MyBatis中的一个核心概念,用于定义数据库操作。 首先,让我们...

    使用STS(SpringToolSuite)工具Spring Boot整合MyBatis详细代码

    这个案例展示了如何在STS中使用Spring Boot整合MyBatis,帮助开发者快速构建数据访问层,提高开发效率。通过学习这个案例,你可以更深入地理解Spring Boot和MyBatis的协同工作方式,以及如何在IDE环境中高效地管理...

    spring mybatis 3.x 使用图文

    在Spring项目中整合MyBatis时,首先需要在项目的`pom.xml`文件中添加MyBatis和MyBatis-Spring的相关依赖。接着,配置`SqlSessionFactory`,这是MyBatis与Spring集成的核心组件,负责创建`SqlSession`,而`SqlSession...

    javaSSM 学习笔记spring spring MVC mybatis

    - 在 SSM 整合中,Spring 负责管理所有组件,包括 Spring MVC 控制器和 MyBatis 的 SqlSession。Spring MVC 处理用户请求,调用业务层服务,而这些服务通常会使用 MyBatis 来与数据库交互。 4. **MyBatis 环境搭建...

    spring boot + mybatis + jersey + mysql源码

    【标题】:“Spring Boot + MyBatis + Jersey + MySQL 源码整合详解” 【正文】: 在现代软件开发中,快速构建可扩展且易于维护的Web应用是至关重要的。Spring Boot、MyBatis、Jersey和MySQL这四个组件的整合,...

    mybatis与spring三种整合方式与需要的jar包列表

    在IT领域,MyBatis和Spring的整合是常见的实践,以实现更高效、灵活的持久层操作。这里我们将深入探讨三种不同的整合方式以及所需的jar包列表。 首先,我们来看第一种方式,即“只使用MyBatis3”。这种方式下,...

    Java学习资料-SpringBoot整合Mybatis实战

    1. **Spring Boot 整合 Mybatis**: - **Spring Boot** 是一个基于 Spring 框架的快速开发工具,它简化了配置并提供了自动配置功能,使得开发者可以更快地构建应用程序。 - **MyBatis** 是一个持久层框架,它允许...

    SpringBoot整合Mybatis!!附带源码!!

    在整合MyBatis时,我们需要引入`spring-boot-starter-web`和`mybatis-spring-boot-starter`这两个起步依赖。这样,Spring Boot会自动配置MyBatis的相关组件,包括SqlSessionFactory和MapperScannerConfigurer。 接...

    spring speingmvc mybatis

    整合Spring、SpringMVC和MyBatis时,我们会创建Spring配置文件来声明Bean,包括数据源、SqlSessionFactory(MyBatis的核心工厂类)以及DAO接口的实现。SpringMVC的配置则会定义DispatcherServlet,视图解析器,以及...

    mybatis整合log4j

    由于MyBatis可能默认使用了SLF4J(Simple Logging Facade for Java)的日志接口,这可能会覆盖你的Log4j配置。为了解决这个问题,我们需要引入一个桥接包来桥接SLF4J和Log4j: 1. 创建配置文件:与之前一样,放置`...

    Spring Boot 集成mybatis

    下面将详细介绍如何在Spring Boot项目中整合MyBatis,并提供相关的配置和使用方法。 首先,我们需要在项目的`pom.xml`或`build.gradle`文件中添加相应的依赖。对于Spring Boot项目,我们需要添加Spring Boot的 ...

    Spring Boot整合MyBatis操作过程

    Spring Boot 整合 MyBatis 操作过程 作为一名 IT 行业大师,我将详细地介绍 Spring Boot 整合 MyBatis 操作过程的相关知识点。 首先,Spring Boot 是一个基于 Java 语言的开源框架,旨在简化基于 Spring 框架的...

Global site tag (gtag.js) - Google Analytics