mybatis ----SqlSessionManager

今天我们来看看这个类 有些写法还是很经典的

 

public class SqlSessionManager implements SqlSessionFactory, SqlSession {

private final SqlSessionFactory sqlSessionFactory;
private final SqlSession sqlSessionProxy;

private final ThreadLocal<SqlSession> localSqlSession = new ThreadLocal<>();

private SqlSessionManager(SqlSessionFactory sqlSessionFactory) {
this.sqlSessionFactory = sqlSessionFactory;
this.sqlSessionProxy = (SqlSession) Proxy.newProxyInstance(
SqlSessionFactory.class.getClassLoader(),
new Class[]{SqlSession.class},
new SqlSessionInterceptor());
}

讲两点

1直接能看到 的threadLoacal<Sqlsession> ,说明<SqlSession> 是跟线程绑定的,每个线程里会自己的SqlSesion副本

2Proxy 代理SqlSession 接口,SqlSessionProxy,代理的写法和使用。




 

posted @ 2018-11-21 13:37  暗夜飞羽睿  阅读(733)  评论(0编辑  收藏  举报