spring与mybatis整合配置MapperFactoryBean 与 MapperScannerConfigurer区别

MapperFactoryBean 与 MapperScannerConfigurer

Spring注入映射器

使用mybatis进行数据处理的四种方式

①SqlSessionTemplate②SqlSessionDaoSupport③MapperFactoryBean④MapperScannerConfigurer

①SqlSessionTemplate:这个需要写配置文件,在实现类中注入sqlsession,再使用sqlsession,是细颗粒控制(非接口开发)

②SqlSessionDaoSupport(存在与比较老的jar包中):这个只需要在实现类中继承特殊类(例如HibernateDaoSupport)

  就可以使用sqlsession(非接口方式开发)

③MapperFactoryBean:这个要写配置文件,把对应的所有接口在配置文件中引用即可,无需写实现类,需要手动注入(动态代理开发)

④MapperScannerConfigurer:这个要写配置文件,只要给出接口所在的包即可,会自动把包中的接口引入,

  无需写实现类,使用注解扫描的方式@Autowired(动态代理)

在SpringMVC中,你可以不必为每一个DAO都去写相应的实现,而交给SpringMVC替你创建。

为了代替手工使用 SqlSessionDaoSupport 或 SqlSessionTemplate 编写数据访问对象 (DAO)的代码,MyBatis-Spring 提供了一个动态代理的实现:MapperFactoryBean。这个类可以让你直接注入数据映射器接口到你的 service 层 bean 中。当使用映射器时,你仅仅如调 用你的 DAO 一样调用它们就可以了,但是你不需要编写任何 DAO 实现的代码,因为 MyBatis-Spring 将会为你创建代理。

MapperFactoryBean

数据映射器接口可以按照如下做法加入到 Spring 中:

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

如果 UserMapper 有一个对应的 MyBatis 的 XML 映射器文件, 如果 XML 文件在类路径的位置和映射器类相同时(即 .java 与 .xml 文件在同一个包下), 它会被 MapperFactoryBean 自动解析。没有必要在 MyBatis 配置文件中去指 定映射器 , 除非映射器的 XML 文件在不同的类路径下 。

注意,当 MapperFactoryBean 需要 SqlSessionFactory 或 SqlSessionTemplate 时。这些可以通过各自的 SqlSessionFactory 或 SqlSessionTemplate 属性来设置, 或者可以由 Spring 来自动装配。如果两个属性都设置了,那么 SqlSessionFactory 就会被忽略,因为 SqlSessionTemplate 是需要有一个 session 工厂的设置; 那个工厂会由 MapperFactoryBean 来使用。

你可以直接在 business/service 对象中以和注入任意 Spring bean 的相同方式直接注入映射器:

这个 bean 可以直接在应用程序逻辑中使用:

注意在这段代码中没有 SqlSession 或 MyBatis 的引用。也没有任何需要创建,打开或关闭 session 的代码, MyBatis-Spring 会来关心它的。

MapperScannerConfigurer

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

要创建 MapperScannerConfigurer,可以在 Spring 的配置中添加如下代码:

basePackage 属性是让你为映射器接口文件设置基本的包路径。 你可以使用分号或逗号 作为分隔符设置多于一

个的包路径。每个映射器将会在指定的包路径中递归地被搜索到。

总结:
MapperFactoryBean 需要一个一个的配

MapperScannerConfigurer 可以配置多个

原文地址:https://www.cnblogs.com/guopeng-blogs/p/8353339.html

时间: 2024-11-24 22:33:19

spring与mybatis整合配置MapperFactoryBean 与 MapperScannerConfigurer区别的相关文章

spring和mybatis整合配置

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p&

Spring+SpringMVC+MyBatis整合配置

前端控制器 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="

idea spring+springmvc+mybatis环境配置整合详解

idea spring+springmvc+mybatis环境配置整合详解 1.配置整合前所需准备的环境: 1.1:jdk1.8 1.2:idea2017.1.5 1.3:Maven 3.5.2 2.查看idea中是否安装Maven插件: 2.1:File --> Settings --> Plugins 2.2:如下图所示的步骤进行操作(注:安装完插件,idea会重新启动) 3.idea创建Maven项目的步骤 4.搭建目录结构 下图就是我搭建Maven项目之后,添加对应的目录和文件 5.p

九 spring和mybatis整合

1       spring和mybatis整合 1.1     整合思路 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession.(spring和mybatis整合自动完成) 持久层的mapper都需要由spring进行管理. 1.2     整合环境 创建一个新的java工程(接近实际开发的工程结构) jar包: mybatis3.2.7的jar包 spring3.2.

Spring与Mybatis整合

1.mybatis-spring.jar简介 Spring与Mybatis整合需要引入一个mybatis-spring.jar文件包,该整合包由Mybatis提供,可以从Mybatis官网下载. mybatis-spring.jar提供了下面几个与整合相关的API SqlSessionFactoryBean 为整合应用提供SqlSession对象资源 MapperFactoryBean 根据指定Mapper接口生成Bean实例 MapperScannerConfigurer 根据指定包批量扫描M

Mybatis学习--spring和Mybatis整合

简介 在前面写测试代码的时候,不管是基于原始dao还是Mapper接口开发都有许多的重复代码,将spring和mybatis整合可以减少这个重复代码,通过spring的模板方法模式,将这些重复的代码进行封装,如:获取SqlSessionFactory.SqlSession.SqlSession的关闭等,我们只需要实现具体的业务处理.另外,spring还利用其IOC将Dao或者Mapper接口的放入到容器中进行管理,更好的实现了解耦. Spring和MyBatis整合 1.整合思路: 需要spri

mybatis学习笔记(14)-spring和mybatis整合

mybatis学习笔记(14)-spring和mybatis整合 mybatis学习笔记14-spring和mybatis整合 整合思路 整合环境 sqlSessionFactory 原始dao开发和spring整合后 mapper代理开发 遇到的问题 本文主要将如何将spring和mybatis整合,只是作简单的示例,没有使用Maven构建.并展示mybatis与spring整合后如何进行原始dao开发和mapper代理开发. 整合思路 需要spring通过单例方式管理SqlSessionFa

Springmvc+spring+maven+Mybatis整合

随着springmvc及maven越来越受到众多开发者的青睐,笔者主要结合springmvc+maven+spring+Mybatis,搭建一套用于开发和学习的框架.本文将一步步展示整个框架的搭建过程,方便交流和学习. 一.开发环境: windows 8.1 eclipse Luna Service Release 1 (4.4.1) mysql-5.6.19-winx64 maven-3.2.3 jdk 1.7 apache-tomcat-7.0.57 二.主要技术: springmvc +

spring mvc+mybatis整合 (二)

转:http://lifeneveralone.diandian.com/post/2012-11-02/40042292065 本文介绍使用spring mvc结合Mybatis搭建一个应用程序框架. demo源码下载:springMVC-Mybatis 1.准备工作: spring的jar包: spring-beans-3.1.0.RELEASE.jar spring-core-3.1.0.RELEASE.jar spring-web-3.1.0.RELEASE.jar spring-web