• 只针对触发事务,返回友好提示


    对于通过抛出异常触发事务返回友好提示信息,我就不详细解释了,记录一下

    @Entity
    public class SysJob implements Serializable {
    
        private static final long serialVersionUID = 1L;
    
        /**
         * 任务ID
         */
        @Id
        private Long jobId;
    
        /**
         * 任务名称
         */
        private String jobName;
    
        /**
         * 任务组名
         */
        private String jobGroup;
    
        /**
         * 调用目标字符串
         */
        private String invokeTarget;
    
        /**
         * cron执行表达式
         */
        private String cronExpression;
    
        /**
         * 计划执行错误策略(1立即执行 2执行一次 3放弃执行)
         */
        private String misfirePolicy;
    
        /**
         * 是否并发执行(0允许 1禁止)
         */
        private String concurrent;
    
        /**
         * 状态(0正常 1暂停)
         */
        private String status;
    
        /**
         * 创建者
         */
        private String createBy;
    
        /**
         * 创建时间
         */
        private LocalDateTime createTime;
    
        /**
         * 更新者
         */
        private String updateBy;
    
        /**
         * 更新时间
         */
        private LocalDateTime updateTime;
    
        /**
         * 备注信息
         */
        private String remark;
    
    
    }
    @RestController
    @RequestMapping("/api")
    @AllArgsConstructor
    @Slf4j
    public class TestController {
    
        private final ISysJobService sysJobService;
    
        /**
         * 发生异常,触发事务并且返回前端
         *
         * @param job
         * @return
         */
        @PostMapping
        public ResponseEntity save(@RequestBody SysJob job) {
            try {
                sysJobService.save(job);
                return ResponseEntity.ok(BizResponse.build("成功"));
            } catch (Exception ex) {
                log.info("save job failed"+ex.getMessage());
                return ResponseEntity.ok(BizResponse.build("失败"));
            }
        }
    }
    public interface ISysJobService {
    
        void save(SysJob job);
    
     }
    @Service
    @AllArgsConstructor
    public class SysJobServiceImpl implements ISysJobService {
    
        private final SysJobMapper sysJobMapper;
        
        @Override
        @Transactional(rollbackFor = Exception.class)
        public void save(SysJob job) {
            SysJob save = sysJobMapper.save(job);
            if (1 == 1) {
                //throw ServiceException.build(RetEnum.RET_COMM_OPERATION_FAIL);
                throw new RuntimeException("失败1111");
            }
    
        }
    }
    public interface SysJobMapper extends JpaRepository<SysJob,Long> {
    
     }

    简单解释一下,就是通过service实现类打上 @Transactional(rollbackFor = Exception.class)  抛出异常以及对应信息,在controller进行try catch,try进行执行成功信息返回, catch 日志记录失败信息返回

  • 相关阅读:
    GB/T 38863-2020 干部网络培训 平台数据接口技术要求
    SF/T 0023-2019 全国公证综合管理信息系统技术规范
    JTS/T 198-3-2019 水运工程施工信息模型应用标准
    GA/T 467-2019 居民身份证验证安全控制模块接口技术规范
    JR/T 0192-2020 证券期货业移动互联网应用程序安全规范
    JR/T 0191-2020 证券期货业软件测试指南 软件安全测试
    C 实战练习题目85
    C 实战练习题目84
    C 实战练习题目83
    C 实战练习题目82
  • 原文地址:https://www.cnblogs.com/quliang/p/16077745.html
Copyright © 2020-2023  润新知