事务管理器接口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