作用域和生命周期

作用域和生命周期是至关重要的,因为错误的使用会导致非常严重的并发问题。

1.SqlSessionFactoryBuilder

这个类主要用于创建SqlSessionFactory,创建完SqlSessionFactory后,SqlSessionFactoryBuilder就没有用处了,可以被丢弃。所以SqlSessionFactoryBuilder最好的作用域是局部方法变量

2.SqlSessionFactory

这个类主要创建SqlSession,SqlSessionFactory的存在与否对SqlSession非常重要,SqlSessionFactory就好像一个水池,而SqlSession就像水池下面的一个阀门,想要用SqlSessionFactory里面的资源,阀门打开就好,不用了就要关闭阀门(SqlSession),防止资源浪费。

所以SqlSessionFactory在一次服务中要时刻存在,为了迎接SqlSession的调用。SqlSessionFactory的最佳作用域是应用作用域,最简单的就是使用单例模式或者静态单例模式创建它。

注意不要多次创建SqlSessionFactory

3.SqlSession

每个线程都应该有它自己的 SqlSession 实例。SqlSession 的实例不是线程安全的,因此是不能被共享的,所以它的最佳的作用域是请求或方法作用域。用完后就要立即关闭它,防止资源浪费

posted @ 2022-01-18 13:54  小罗要有出息  阅读(37)  评论(0编辑  收藏  举报