java配合注解主动回滚事务_springboot 自定义注解控制事务回滚

springboot 自定义注解通过切面控制方法主动抛异常达到事务回滚的目的

写一个自定义注解

import java.lang.annotation.ElementType;

import java.lang.annotation.Target;

@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})

public @interface ThrowException {

public String value() default "";

}

写一个切面控制,⚠️要用环绕通知

@Aspect

@Component

@Slf4j

public class ThrowExectionAspect implements Ordered {

//service层切点

@Pointcut("@within(com.hasl.isp.policyprovider.annotation.ThrowException)")

public void excetionAspect() {}

@Around("excetionAspect()")

public Object around(ProceedingJoinPoint pjp) throws Throwable {

Object result = pjp.proceed(pjp.getArgs());

if(result != null && result instanceof ReturnMsg) {

ReturnMsg returnMsg = (ReturnMsg)result;

if (returnMsg.getMsgList().size() > 0){

throw new BaseException("业务异常");

}

}

return result;

}

@Override

public int getOrder() {

return Integer.MAX_VALUE;

}

}

然后把自定义注解加到service实现类上面就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值