Flowable源码地址:https://github.com/flowable/flowable-engine
Flowable-6.7.2 源码注释地址:https://github.com/solojin/flowable-6.7.2-annotated
事务上下文工厂类,包路径:org.flowable.common.engine.impl.cfg
TransactionContextFactory 事务上下文工厂类
/**
* 事务上下文工厂类
*
* @author Tom Baeyens
*/
public interface TransactionContextFactory {
TransactionContext openTransactionContext(CommandContext commandContext);
}
SpringTransactionContextFactory Spring事务上下文工厂类
package org.flowable.common.spring;
import org.flowable.common.engine.impl.cfg.TransactionContext;
import org.flowable.common.engine.impl.cfg.TransactionContextFactory;
import org.flowable.common.engine.impl.interceptor.CommandContext;
import org.springframework.transaction.PlatformTransactionManager;
/**
* Spring事务上下文工厂类
*
* @author Frederik Heremans
*/
public class SpringTransactionContextFactory implements TransactionContextFactory {
protected PlatformTransactionManager transactionManager;
protected Integer transactionSynchronizationAdapterOrder;
public SpringTransactionContextFactory(PlatformTransactionManager transactionManager) {
this(transactionManager, null);
}
public SpringTransactionContextFactory(PlatformTransactionManager transactionManager, Integer transactionSynchronizationAdapterOrder) {
this.transactionManager = transactionManager;
this.transactionSynchronizationAdapterOrder = transactionSynchronizationAdapterOrder;
}
@Override
public TransactionContext openTransactionContext(CommandContext commandContext) {
return new SpringTransactionContext(transactionManager, commandContext, transactionSynchronizationAdapterOrder);
}
}
StandaloneMybatisTransactionContextFactory 事务上下文工厂类
package org.flowable.common.engine.impl.cfg.standalone;
import org.flowable.common.engine.impl.cfg.TransactionContext;
import org.flowable.common.engine.impl.cfg.TransactionContextFactory;
import org.flowable.common.engine.impl.interceptor.CommandContext;
/**
* Mybatis事务上下文工厂类
*
* @author Tom Baeyens
*/
public class StandaloneMybatisTransactionContextFactory implements TransactionContextFactory {
@Override
public TransactionContext openTransactionContext(CommandContext commandContext) {
return new StandaloneMybatisTransactionContext(commandContext);
}
}