`

myBatis3与spring整合之注入映射器

阅读更多

myBatis3与spring整合之注入映射器(1)

----------

 

MyBatis-Spring允许你在Service Bean中注入映射器。当使用映射器时,就像调用DAO那样来调用映射器就可以了,但是此时你就不需要进行任何DAO实现的编码,因为MyBatis会为你进行。 

使用注入的映射器,你的代码就不会出现任何MyBatis-Spring依赖和MyBatis依赖。在我们的应用中有这样一个简单的映射器。你也应该知道映射器仅仅是一个接口

Java代码  收藏代码
  1. public interface UserMapper {   
  2.     User getUser(String userId);   
  3. }    

这是你使用MyBatis-Spring来创建映射器的方式: 

Xml代码  收藏代码
  1. <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">   
  2.     <property name="sqlSessionFactory" ref="sqlSessionFactory" />   
  3.     <property name="mapperInterface" value="sample.UserMapper" />   
  4. </bean>   

现在你的映射器已经准备在Service对象中注入了:

Java代码  收藏代码
  1. <bean id="fooService" class="sample.FooServiceImpl">  
  2.     <property name="userMapper" ref="userMapper"/>  
  3. </bean>  

注:映射器接口全类名与映射器xml配置文件的namespace是对应的

 

关于MapperFactoryBean

MapperFactoryBean创建的代理类实现了映射器接口(如上例:UserMapper),并且注入到应用程序中。因为代理创建在运行环境中,那么指定的映射器必须是一个接口。而不是一个具体的实现类。  

myBatis3与spring整合之注入映射器(2)

----------

 

 

没有必要在Spring的XML配置文件中注册所有的映射器。相反,你可以使用一个MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBeans。要创建MapperScannerConfigurer,可以在Spring的配置中添加如下代码:

 

 

Xml代码  收藏代码
  1. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
  2.     <propery name="basePackage" value="org.mybatis.spring.sample.mapper"/>  
  3. </bean>  

 

basePackage属性是让你为映射器接口文件设置基本的包路径。你可以使用分号或逗号作为分隔符设置多于一个的包路径。每个映射器将会在指定的包路径中递归地被搜索到。

注意,没有必要去指定SqlSessionFactory或SqlSessionTemplate,因为MapperScannerConfigurer将会创建MapperFactoryBean,之后自动装配。但是,如果你使用了一个以上的DataSource(因此,也是多个的SqlSessionFactory),那么自动装配可能会失效。这种情况下,你可以使用sqlSessionFactory或sqlSessionTemplate属性来设置正确的工厂/模板。

 

MapperScannerConfigurer支持过滤由指定的创建接口注解创建映射器。annotationClass属性指定了要寻找的注解名称markerInterface属性指定了要寻找的父接口。如果两者都被指定了,加入到接口中的映射器会匹配两种标准。默认情况下,这两个属性都是null,所以在基包中给定的所有接口可以作为映射器加载。

 

被发现的映射器将会使用Spring对自动侦测组件默认的命名策略来命名。也就是说,如果没有发现注解,它就会使用映射器的非大写的非完全限定类名。但是如果发现了@Component或JSR-330@Named注解,它会获取名称。

分享到:
评论

相关推荐

    mybatis-spring-1.2.3

    这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中。 而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中。最终,它并 ...

    详解Java的MyBatis框架与Spring框架整合中的映射器注入

    映射器注入方式可以将MyBatis与Spring映射好的XML文件实现配置共用,这里我们就来详解Java的MyBatis框架与Spring框架整合中的映射器注入:

    spring整合mybatis.docx

    spring整合mybatis

    mybatis-3.2.5.jar及mybatis-spring-1.2.2.jar

    这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中。 而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中。最终,它并 ...

    mybatis-spring-1.2.2.jar

    这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中。 而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中。最终,它并 ...

    Spring+MyBatis

    这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中。 而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中。最终,它并 ...

    【Spring整合Mybatis配置及测试代码】

    这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中。 而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中。最终,它并 ...

    mybatis-spring-1.2.0 源码

    它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataAccessException。最终,可以做到应用代码不依赖于 MyBatis,...

    spring-mybatis

    这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中。 而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中。最终,它并 ...

    mybatis-3.1.1-bundle

    这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中。 而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中。最终,它并 ...

    Spring集成MyBatis.docx

    一、建立数据库及新表 二、maven依赖pom.xml ...所以,该整合,只需要将 SqlSessionFactory 的对象生成器 SqlSessionFactoryBean 注册在 Spring 容器中,再将其注入给 Dao 的实现类即可完成整合

    springmybatis

    mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in ...

    MyBatis Spring中文文档

    1.1 为什么整合MyBatis 和Spring 1.2 要求 1.3 感谢 第二章 入门 2.1 介绍 2.2 安装 2.3 创建SqlSessionFactory 第三章 注入映射器 3.1 注入映射器 第四章 使用SqlSessionDaoTemplate 和...

    整合Spring和MyBatis,开发人员可以充分发挥两个框架的优势,实现更高效、更灵活、更可维护的持久层操作,并使应用程序的开

    提供事务管理:Spring提供了强大的事务管理功能,可以与MyBatis无缝集成。通过整合,可以使用Spring事务管理器对数据库操作进行事务控制,实现数据一致性和事务边界的管理。 注解驱动的开发:MyBatis支持使用注解来...

    SSM框架教程Spring+SpringMVC+MyBatis全覆盖_Java热门框架视频教程

    视频详细讲解,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 讲解方式: 以基础入门为主,使用PPT进行...3、MyBatis的映射文件深入 4、MyBatis的核心文件深入 5、MyBatis的多表操作 6、MyBatis的注解开发

    整合SpringMVC、Spring、Mybatis开发信息管理系统

    SpringMVC、Spring和MyBatis是Java开发中常用的框架,它们可以一起使用来开发信息管理系统。 首先,SpringMVC是一个基于MVC(Model-View-Controller)设计模式的轻量级Web框架,它可以处理Web请求和响应。它提供了...

    SpringMybatisRedis整合

    这是一个spring-mybatis整合的项目...使用spring-mvc做控制器..使用了三种dao的实现方式.. 定义 : MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。 优点 : MyBatis 避免了几乎所有的 JDBC ...

    Spring.3.x企业应用开发实战(完整版).part2

    12.1 Spring整合ORM技术 12.2 在Spring中使用Hibernate 12.2.1 配置SessionFactory 12.2.2 使用HibernateTemplate 12.2.3 处理LOB类型数据 12.2.4 添加Hibernate事件监听器 12.2.5 使用原生Hibernate API 12.2.6 ...

    Spring3.x企业应用开发实战(完整版) part1

    12.1 Spring整合ORM技术 12.2 在Spring中使用Hibernate 12.2.1 配置SessionFactory 12.2.2 使用HibernateTemplate 12.2.3 处理LOB类型数据 12.2.4 添加Hibernate事件监听器 12.2.5 使用原生Hibernate API 12.2.6 ...

    Spring-generator一键生成数据库文件

    Spring-generator 是基于 javafx8 开发的图形界面 Spring 代码生成器,使用 Apache FreeMarker 作为代码文件的模板,用户可以一键将数据库中的表生成为任意风格的 .java 代码文件(比如经典的三层模型)。 Spring-...

Global site tag (gtag.js) - Google Analytics