美文网首页
类之间的关系

类之间的关系

作者: zjkdifvpwlkqumn | 来源:发表于2020-07-21 19:21 被阅读0次

sqlsession 持有 Configuration
sqlsession 持有executor

Configuration 持有 MapperRegistry
Configuration 持有 Environment
Environment 持有dataSource

org.apache.ibatis.session.defaults.DefaultSqlSessionFactory

private SqlSession openSessionFromDataSource(ExecutorType execType, TransactionIsolationLevel level, boolean autoCommit)
方法
创建
SqlSession

sqlsession 持有 Executor
Executor 持有 Transaction
Transaction 持有 datasource

----------------------------------------------------------------------------------------------------------spring-tx 持有2
TransactionAspectSupport 持有 TransactionInfo
TransactionInfo 持有 PlatformTransactionManager, TransactionAttribute , TransactionStatus

DataSourceTransactionManager 实现了 PlatformTransactionManager 接口

DataSourceTransactionManager 持有 DataSourceTransactionObject
DataSourceTransactionObject 持有 connectionholder
connectionholder 持有 connection
TransactionStatus
TransactionSynchronizationManager

Transaction的一个实现类org.apache.ibatis.transaction.jdbc.JdbcTransaction,这个类里维护了DataSource,在需要的时候会创建java.sql.Connection,在创建完java.sql.Connection后,会根据创建org.apache.ibatis.session.SqlSession时传递的参数值,设置java.sql.Connection是否自动提交。该类也提供了对Connection执行commit、rollback的方法,在org.apache.ibatis.session.SqlSession执行commit、rollback方法时,都会传递到这里的方法。

在mybatis-spring初始化的过程会执行如下的代码:
org.mybatis.spring.SqlSessionFactoryBean

if (this.transactionFactory == null) {
    this.transactionFactory = new SpringManagedTransactionFactory();
}
Environment environment = new Environment(this.environment, this.transactionFactory, this.dataSource);
configuration.setEnvironment(environment);

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>


<tx:annotation-driven transaction-manager="transactionManager" />

TransactionAspectSupport 中的 transactionInfoHolder 记录了当前线程的事务状态 对应着 TransactionInfo中的oldTransactionInfo

ThreadLocal<TransactionInfo> transactionInfoHolder

相关文章

  • 类之间关系

    类的关系: 介绍几种常见的类与类之间的关系:继承、实现、组合、聚合、依赖。 这里的关系都是语义上的,和语言没有关系...

  • 类之间的关系

    类之间的关系: 依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。

  • 类之间的关系

    今天讲类之间的关系,关联关系不是那么好理解和掌握。概念重要,例子更重要,例子讲好了,讲透了。今天做的就不错。依赖关...

  • 类之间的关系

    泛化关系(generalization) 类的继承结构表现在UML中为:泛化(generalize)与实现(rea...

  • 类之间的关系

    父子 兄弟继承同一父类的子类 同事协作关系,处理不同业务,可能没有必然共性 组合被组合对象与主体的生命周期相同,主...

  • 类之间的关系

    http://www.cnblogs.com/kittybo/articles/CPLUSPLUS_02.html...

  • 类之间的关系

    sqlsession 持有 Configurationsqlsession 持有executor Configur...

  • 类之间的关系

    1、前言 类之间主要有两大关系(继承和实现就不讲了),依赖和关联。依赖一般只是使用了对象,他们之间的关系很微弱,几...

  • 类图,对象图,时序图

    1.类图 1.类与类之间的关系: 在绘制类图前,先熟悉类与类之间的关系。面向对象语言中类与类之间关系共计六种,分别...

  • 使用StarUml绘图概括

    1.类与类之间的关系: 在绘制类图前,先熟悉类与类之间的关系。面向对象语言中类与类之间关系共计六种,分别是继承、实...

网友评论

      本文标题:类之间的关系

      本文链接:https://www.haomeiwen.com/subject/fnuwkktx.html