作用域 生命周期
依赖注入框架可以创建线程安全的、基于事务的 SqlSession 和映射器,并将它们直接注入到你的 bean 中,因此可以直接忽略它们的生命周期。
局部变量,用于创建SqlSessionFactory
SqlSessionFactory
应用运行期间
SqlSession
每个线程应该有自己的SqlSession,非线程安全,不能共享,所以它的最佳的作用域是请求或方法作用域
如果你现在正在使用一种 Web 框架,要考虑 SqlSession 放在一个和 HTTP 请求对象相似的作用域中
换句话说,每次收到的 HTTP 请求,就可以打开一个 SqlSession,返回一个响应,就关闭它。
try (SqlSession session = sqlSessionFactory.openSession()) {
// 你的应用逻辑代码 确保资源可以关闭
}
映射器实例(mapper)
映射器接口的实例是从 SqlSession 中获得的,因此从技术层面讲,映射器实例的最大作用域是和请求它们的 SqlSession 相同的。
最佳作用域是方法作用域
用过之后,无需显式关闭,在整个请求作用域内也没有问题
原文:https://www.cnblogs.com/siqi/p/11336508.html