MyBatis中主要类的生命周期和应用范围
2013-09-02 00:11
204 查看
转自:http://ccchhhlll1988-163-com.iteye.com/blog/1420026
MyBatis中常用的类就要数SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、SqlMapper了。那么下面对他们的应用范围和生命周期进行一下说明:
1、SqlSessionFactoryBuilder:在应用中该类实例的主要作用是创建SqlSessionFactory实例,故任务完成后就可以消失了。因此该类实例的最佳应用范围和生命周期应为“方法范围”。
2、SqlSessionFactory:在应用的整个周期中会有众多地方需要利用其实例打开某个SqlSession,因此最佳范围是“应用生命周期范围”。故此,可以使用单例与工厂模式,在官方文档中最佳建议是IoC容器,如Spring来生成该实例。
3、SqlSession:该类是非线程安全的,其实例是不能共享的,所以应该每个线程具有自己的SqlSession实例。因此最佳建议是“请求或方法范围”。例如:收到一个Http请求后,创建一个实例,进行某些操作,之后关闭。确保将关闭放于finally中。
4、SqlMapper:是创建绑定映射语句的接口。其实例从SqlSession获得,所以其最宽生命周期与SqlSession相同,因此其实例的执行范围也是“方法范围”,而且其不需要明确的关闭。
MyBatis中常用的类就要数SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、SqlMapper了。那么下面对他们的应用范围和生命周期进行一下说明:
1、SqlSessionFactoryBuilder:在应用中该类实例的主要作用是创建SqlSessionFactory实例,故任务完成后就可以消失了。因此该类实例的最佳应用范围和生命周期应为“方法范围”。
2、SqlSessionFactory:在应用的整个周期中会有众多地方需要利用其实例打开某个SqlSession,因此最佳范围是“应用生命周期范围”。故此,可以使用单例与工厂模式,在官方文档中最佳建议是IoC容器,如Spring来生成该实例。
3、SqlSession:该类是非线程安全的,其实例是不能共享的,所以应该每个线程具有自己的SqlSession实例。因此最佳建议是“请求或方法范围”。例如:收到一个Http请求后,创建一个实例,进行某些操作,之后关闭。确保将关闭放于finally中。
4、SqlMapper:是创建绑定映射语句的接口。其实例从SqlSession获得,所以其最宽生命周期与SqlSession相同,因此其实例的执行范围也是“方法范围”,而且其不需要明确的关闭。
相关文章推荐
- Mybatis 各主要类的生命周期
- MyBatis中对象的范围和生命周期
- 泵的主要应用范围
- MyBatis范围和生命周期
- 力所能及之Mybatis 范围和生命周期
- MyBatis对象的范围和生命周期
- 简析Linux主要应用领域及范围
- Mybatis3 API的范围和生命周期
- mybatis-范围和生命周期
- mybatis 各个重要组件的范围和生命周期
- SQL Server2008(二)各版本的功能和主要应用范围
- 常用的操作系统及其主要的应用范围
- 谷歌官方Android应用架构库——处理生命周期
- 构建iOS稳定应用架构时方案选择的思考,主要涉及工程结构,数据流思想和代码规范
- Python那么火,到底能用来做什么?我们来说说Python3的主要应用
- mybatis学习笔记2-SQL的简单应用
- OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为R
- iOS应用程序生命周期(前后台切换,应用的各种状态)详解
- 从“Hello World”看iOS应用的生命周期[转]
- OSGI企业应用开发(九)整合Spring和Mybatis框架(二)