关于spring:Spring事务管理

35次阅读

共计 1390 个字符,预计需要花费 4 分钟才能阅读完成。

事务管理器接口 PlatformTransactionManager

Spring 事务管理中心接口

public interface PlatformTransactionManager{TransactionStatus getTransaction(@Nullable TransactionDefinition definition)
            throws TransactionException;

    void commit(TransactionStatus status) throws TransactionException;

    void rollback(TransactionStatus status) throws TransactionException;
}

罕用实现类

事务管理器通常会在我的项目启动时初始化,以 HibernateTransactionManager 为例

    @Bean
    public HibernateTransactionManager transactionManager() {HibernateTransactionManager transactionManager = new HibernateTransactionManager();
        transactionManager.setSessionFactory(sessionFactory().getObject());
        return transactionManager;
    }

事务定义 TransactionDefinition

定义事务隔离级别与流传行为

public interface TransactionDefinition {

    int PROPAGATION_REQUIRED = 0;
    int PROPAGATION_SUPPORTS = 1;
    int PROPAGATION_MANDATORY = 2;
    int PROPAGATION_REQUIRES_NEW = 3;
    int PROPAGATION_NOT_SUPPORTED = 4;
    int PROPAGATION_NEVER = 5;
    int PROPAGATION_NESTED = 6;
    int ISOLATION_DEFAULT = -1;

    int ISOLATION_READ_UNCOMMITTED = Connection.TRANSACTION_READ_UNCOMMITTED;
    int ISOLATION_READ_COMMITTED = Connection.TRANSACTION_READ_COMMITTED;
    int ISOLATION_REPEATABLE_READ = Connection.TRANSACTION_REPEATABLE_READ;
    int ISOLATION_SERIALIZABLE = Connection.TRANSACTION_SERIALIZABLE;

    int TIMEOUT_DEFAULT = -1;
    int getPropagationBehavior();
    int getIsolationLevel();
    int getTimeout();
    boolean isReadOnly();
    @Nullable
    

TransactionInterceptor

申明式事务通过办法拦截器关联 Spring 的事务处理,编程式事务则是通过模板办法 TransactionTemplate

事务同步器 TransactionSynchronizationManager

正文完
 0