All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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();
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy