作用域和生命周期是至关重要的,因为错误的使用会导致非常严重的并发问题。
1.SqlSessionFactoryBuilder
这个类主要用于创建SqlSessionFactory,创建完SqlSessionFactory后,SqlSessionFactoryBuilder就没有用处了,可以被丢弃。所以SqlSessionFactoryBuilder最好的作用域是局部方法变量
2.SqlSessionFactory
这个类主要创建SqlSession,SqlSessionFactory的存在与否对SqlSession非常重要,SqlSessionFactory就好像一个水池,而SqlSession就像水池下面的一个阀门,想要用SqlSessionFactory里面的资源,阀门打开就好,不用了就要关闭阀门(SqlSession),防止资源浪费。
所以SqlSessionFactory在一次服务中要时刻存在,为了迎接SqlSession的调用。SqlSessionFactory的最佳作用域是应用作用域,最简单的就是使用单例模式或者静态单例模式创建它。
注意不要多次创建SqlSessionFactory
3.SqlSession
每个线程都应该有它自己的 SqlSession 实例。SqlSession 的实例不是线程安全的,因此是不能被共享的,所以它的最佳的作用域是请求或方法作用域。用完后就要立即关闭它,防止资源浪费
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术