Spring与MyBatis整合

整合的主要工作就是把mybatis框架使用中所涉及的核心组件配置到spring容器中,交给spring来创建和管理。
业务逻辑对象依赖基于mybatis技术实现的dao对象,核心是获取sqlsession实例。

spring和mybatis整合步骤
1、配置datasource,在spring中配置数据源。流行的数据源实现有dbcp、c3p0、proxool,它们都实现了连接池功能
2、配置sqlsessionfactorybean,sqlsessionfactorybean封装了使用sqlsessionfactorybulider创建sqlsessionfactory的过程,通过在spring配置文件中配置sqlsessionfactorybean获得sqlsessionfactory实例。
3、sqlsessionetemplate进行持久化操作,sqlsessiontemplate类实现了mybatis的sqlsession接口可以替换mybatis中原有的sqlsession实现类来提供数据库访问操作。
mybatis-spring提供了sqlsessiontemplate模板类操作数据库,常用方法有selectlist()、insert()、update()等,使用getMapper(Class Type)可以直接访问接口实例,能够减少错误发生,另外可以不用写dao的实现类,sqlsessiontemplate是线程安全的,可以以单例模式配置并被多个dao对象共用。
4、完善代码并测试

注入映射器的两种方式
使用MapperFactoryBean能够以配置的方式得到映射器实现,简化dao开发。前提是保证映射命名空间名和接口名称相同,以及映射元素的id和接口方法相同
使用mapperscannerconfigurer可以递归扫描basepackage所指定的包下的所有接口类,在service中可以使用@autowired或@resource注解注入这些映射接口的bean
spring和mybatis整合可以采用spring的事务管理,包括使用xml和注解配置事务管理

添加声明式事务
spring提供了声明式事务处理机制,基于aop实现,无序编写任何事务管理代码,所有的工作全在配置文件中完成,配置即可用,与业务代码完全分离,降低了开发维护难度。
事务管理器datasourcetransactionmanager
标签tx:method,name属性必需,用于指定匹配的方法。其他属性列举如下:
propagation,事务传播机制,required默认值,事务存在则支持,不存在则开启一个新的事务;
supports,事务存在则支持,不存在按非事务方式执行
lsolation,事务隔离等级,即当前事务和其他事务的隔离程度,在并发事务处理的情况下需要考虑设置。
rollback-for,设定事务发出回滚的异常类型

使用propertyplaceholdconfigurer可以加载属性文件.properties,实现灵活的配置
spring可以从环境中获取jndi资源
spring配置bean组件时,可以指定singleton(默认值)、prototype、request、session、globalsession几种不同的作用域。singleton是默认作用域,默认情况下spring为每个bean仅创建一个实例,提高效率。对于存在线程安全问题的组件,可以使用prototype作用域,设置scope属性。其余三种作用域在web环境下使用
配置多个配置文件,可以通过数组方式或使用通配符(*)加载,也可以在spring主配置文件中使用方式引入多个配置文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值