zoukankan      html  css  js  c++  java
  • Mybatis中的基本对象的生命周期和作用域

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

    1. SqlSessionFactoryBuilder

    这个类可以被实例化、使用和丢弃,一旦创建了 SqlSessionFactory,就不再需要它了
    作用域:方法作用域(局部作用域),写成静态代码块,在虚拟机初始化的时候执行,被销毁

    1. SqlSessionFactory

    SqlSessionFactory 一旦被创建就应该在应用的运行期间一直存在,没有任何理由丢弃它或重新创建另一个实例.有很多方法可以做到,最简单的就是使用单例模式或者静态单例模式。
    生命周期:应用的运行期间
    作用域:应用作用域,可以写成一个特定的工具类

    3.SqlSession

    每个线程都应该有它自己的 SqlSession 实例。SqlSession 的实例不是线程安全的,因此是不能被共享的,所以它的最佳的作用域是请求或方法作用域。每次收到 HTTP 请求,就可以打开一个 SqlSession,返回一个响应后,就关闭它。最好将其放在一个try|catch块中
    作用域:请求或方法作用域
    生命周期:一个请求或方法,需要及时地sqlSession.close()

  • 相关阅读:
    property补充
    利用描述符自定制property
    类的装饰器
    上下文协议管理
    描述符
    迭代器协议
    doc属性__module__属性__del__(垃圾回收)__call__方法
    【移动支付】.NET支付宝App支付接入
    【WPF】PopupColorEdit 的使用
    【MVVM Dev】PART_Editor的使用
  • 原文地址:https://www.cnblogs.com/Arno-vc/p/13364631.html
Copyright © 2011-2022 走看看