fun.fengwk.convention4j.springboot.starter.transaction.TransactionExecutor Maven / Gradle / Ivy
The newest version!
package fun.fengwk.convention4j.springboot.starter.transaction;
import fun.fengwk.convention4j.common.function.Func0;
import fun.fengwk.convention4j.common.function.Func0T1;
import fun.fengwk.convention4j.common.function.VoidFunc0;
import fun.fengwk.convention4j.common.function.VoidFunc0T1;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
/**
* 事务管理器
* @author fengwk
*/
public class TransactionExecutor {
/**
* 事务性执行,传播方式为{@link Propagation#REQUIRED}
* @param executor 执行器
*/
@Transactional(propagation = Propagation.REQUIRED)
public void executeWithRequired(VoidFunc0 executor) {
executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#REQUIRED}
* @param executor 执行器
* @param 返回值类型
* @return 返回值
*/
@Transactional(propagation = Propagation.REQUIRED)
public R executeWithRequired(Func0 executor) {
return executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#SUPPORTS}
* @param executor 执行器
*/
@Transactional(propagation = Propagation.SUPPORTS)
public void executeWithSupports(VoidFunc0 executor) {
executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#SUPPORTS}
* @param executor 执行器
* @param 返回值类型
* @return 返回值
*/
@Transactional(propagation = Propagation.SUPPORTS)
public R executeWithSupports(Func0 executor) {
return executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#MANDATORY}
* @param executor 执行器
*/
@Transactional(propagation = Propagation.MANDATORY)
public void executeWithMandatory(VoidFunc0 executor) {
executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#MANDATORY}
* @param executor 执行器
* @param 返回值类型
* @return 返回值
*/
@Transactional(propagation = Propagation.MANDATORY)
public R executeWithMandatory(Func0 executor) {
return executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#REQUIRES_NEW}
* @param executor 执行器
*/
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void executeWithRequireNew(VoidFunc0 executor) {
executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#REQUIRES_NEW}
* @param executor 执行器
* @param 返回值类型
* @return 返回值
*/
@Transactional(propagation = Propagation.REQUIRES_NEW)
public R executeWithRequireNew(Func0 executor) {
return executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#NOT_SUPPORTED}
* @param executor 执行器
*/
@Transactional(propagation = Propagation.NOT_SUPPORTED)
public void executeWithNotSupported(VoidFunc0 executor) {
executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#NOT_SUPPORTED}
* @param executor 执行器
* @param 返回值类型
* @return 返回值
*/
@Transactional(propagation = Propagation.NOT_SUPPORTED)
public R executeWithNotSupported(Func0 executor) {
return executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#NEVER}
* @param executor 执行器
*/
@Transactional(propagation = Propagation.NEVER)
public void executeWithNever(VoidFunc0 executor) {
executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#NEVER}
* @param executor 执行器
* @param 返回值类型
* @return 返回值
*/
@Transactional(propagation = Propagation.NEVER)
public R executeWithNever(Func0 executor) {
return executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#NESTED}
* @param executor 执行器
*/
@Transactional(propagation = Propagation.NESTED)
public void executeWithNested(VoidFunc0 executor) {
executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#NESTED}
* @param executor 执行器
* @param 返回值类型
* @return 返回值
*/
@Transactional(propagation = Propagation.NESTED)
public R executeWithNested(Func0 executor) {
return executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#REQUIRED}
* @param executor 执行器
*/
@Transactional(propagation = Propagation.REQUIRED)
public void executeWithRequiredWithThrowable(VoidFunc0T1 executor) throws T {
executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#REQUIRED}
* @param executor 执行器
* @param 返回值类型
* @return 返回值
*/
@Transactional(propagation = Propagation.REQUIRED)
public R executeWithRequiredWithThrowable(Func0T1 executor) throws T {
return executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#SUPPORTS}
* @param executor 执行器
*/
@Transactional(propagation = Propagation.SUPPORTS)
public void executeWithSupportsWithThrowable(VoidFunc0T1 executor) throws T {
executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#SUPPORTS}
* @param executor 执行器
* @param 返回值类型
* @return 返回值
*/
@Transactional(propagation = Propagation.SUPPORTS)
public R executeWithSupportsWithThrowable(Func0T1 executor) throws T {
return executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#MANDATORY}
* @param executor 执行器
*/
@Transactional(propagation = Propagation.MANDATORY)
public void executeWithMandatoryWithThrowable(VoidFunc0T1 executor) throws T {
executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#MANDATORY}
* @param executor 执行器
* @param 返回值类型
* @return 返回值
*/
@Transactional(propagation = Propagation.MANDATORY)
public R executeWithMandatoryWithThrowable(Func0T1 executor) throws T {
return executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#REQUIRES_NEW}
* @param executor 执行器
*/
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void executeWithRequireNewWithThrowable(VoidFunc0T1 executor) throws T {
executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#REQUIRES_NEW}
* @param executor 执行器
* @param 返回值类型
* @return 返回值
*/
@Transactional(propagation = Propagation.REQUIRES_NEW)
public R executeWithRequireNewWithThrowable(Func0T1 executor) throws T {
return executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#NOT_SUPPORTED}
* @param executor 执行器
*/
@Transactional(propagation = Propagation.NOT_SUPPORTED)
public void executeWithNotSupportedWithThrowable(VoidFunc0T1 executor) throws T {
executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#NOT_SUPPORTED}
* @param executor 执行器
* @param 返回值类型
* @return 返回值
*/
@Transactional(propagation = Propagation.NOT_SUPPORTED)
public R executeWithNotSupportedWithThrowable(Func0T1 executor) throws T {
return executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#NEVER}
* @param executor 执行器
*/
@Transactional(propagation = Propagation.NEVER)
public void executeWithNeverWithThrowable(VoidFunc0T1 executor) throws T {
executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#NEVER}
* @param executor 执行器
* @param 返回值类型
* @return 返回值
*/
@Transactional(propagation = Propagation.NEVER)
public R executeWithNeverWithThrowable(Func0T1 executor) throws T {
return executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#NESTED}
* @param executor 执行器
*/
@Transactional(propagation = Propagation.NESTED)
public void executeWithNestedWithThrowable(VoidFunc0T1 executor) throws T {
executor.apply();
}
/**
* 事务性执行,传播方式为{@link Propagation#NESTED}
* @param executor 执行器
* @param 返回值类型
* @return 返回值
*/
@Transactional(propagation = Propagation.NESTED)
public R executeWithNestedWithThrowable(Func0T1 executor) throws T {
return executor.apply();
}
}