配置解析之生命周期和作用域问题

生命周期和作用域

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

流程:

SqlSessionFactoryBuilder

  • 一旦创建SqlSessionFactory,就不需要它了
  • 所以它的作用域为局部变量

SqlSessionFactory

  • 可以想象为:数据库连接池
  • 一旦创建就一直存在,没有任何理由丢弃它或创建新的实例
  • 因为SqlSessionFactory的最佳作用域是应用作用域(全局)
  • 最简单的就是使用单例模式或者静态单例模式

SqlSeesion

  • 每个线程都应该有自己的SqlSession实例;连接到连接池的一个请求
  • 需要开始和关闭
  • SqlSession不是线程安全的,所以不能被共享,最佳的作用域是放到一个方法里,用完就关闭,否则资源被占用

这里面的每一个mapper,就代表一个具体的业务

posted @ 2022-06-07 15:53  无关风月7707  阅读(22)  评论(0编辑  收藏  举报