spring事务手动回滚
2016-12-22 10:54
441 查看
@Transactional(rollbackFor = { Exception.class }) public JSONObject preSendMsg(AuthInfo authInfo, Message message) { JSONObject jsonObject = new ResultJSONObject("000", "消息预发送成功"); try { // 判断参数有效性 if (null == authInfo || StringUtil.isEmpty(authInfo.getUsername()) || StringUtil.isEmpty(authInfo.getPassword()) || null == message || StringUtil.isEmpty(message.getQueueName()) || StringUtil.isEmpty(message.getExchange()) || StringUtil.isEmpty(message.getContent())) { return new ResultJSONObject("001", "重要参数不可为空!"); } // 检查消息操作的权限信息 // 检查队列配置是否存在 1 JSONObject checkAuthJson = this.checkAuthInfo(authInfo, message.getQueueName()); if (!"000".equals((String) checkAuthJson.get("resultCode"))) { return checkAuthJson; } Map<String, Object> mqInfo = checkAuthJson.getJSONObject("mqInfo"); // 检查消息的发送频率,控制流速...TODO // 消息去重,相同消息返回相同的msgId 2 if (!chechMsgUnique(mqInfo, message)) { return new ResultJSONObject("021", "消息内容重复!"); } // 保存消息 3 MessageTpl messageTpl = saveMessage(mqInfo, message); if(null==messageTpl){ return new ResultJSONObject("031", "消息保存失败!"); } jsonObject.put("msgId", messageTpl.getMsgId().toString()); } catch (Exception e) { logger.error("preSendMsg_Exception ", e); jsonObject=new ResultJSONObject("preSendMsg_Exception", "消息预发送异常"); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动开启事务回滚 } return jsonObject; }
相关文章推荐
- 【web】Spring中使用DataSourceTransactionManager手动提交或回滚事务
- Spring手动回滚事务
- spring 事务控制 设置手动回滚
- 利用Spring的事务模版来手动回滚事务
- Spring手动回滚事务
- Spring手动回滚事务
- Spring手动回滚事务
- spring手动设置事务回滚
- spring 控制事务下手动回滚事务的方法
- Spring事务为什么不会自动回滚?Spring事务怎样才会自动回滚?事务自动回滚条件及手动回滚
- Spring手动回滚事务
- spring 手动事务回滚
- spring手动回滚事务
- 基于Eclipse Maven的Spring4/Spring-MVC/Hibernate4整合之五:Hibernate的事务管理、手动回滚
- spring 回滚事务 异常处理 手动回滚 公司通用处理方式
- spring手动回滚事务
- Spring事务异常回滚,捕获异常不抛出就不会回滚
- 用spring测试框架测试Mysql数据库时事务无法回滚
- Spring事务异常回滚,捕获异常不抛出就不会回滚