Spring手动编写事务DEMO

    @Around("myPointcut()")
	public Object aroundExecute(ProceedingJoinPoint p) {
		Object res = null;
		//XXX 此处还可以添加方法调用的权限功能 或者考虑在Filter中做
		//事务的开始
		DefaultTransactionDefinition def = new DefaultTransactionDefinition();
		def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
		TransactionStatus status = txManager.getTransaction(def);
		try {
			System.out.println("around befroe");
			res = p.proceed();
			System.out.println("around after");
//			System.out.println(res);
		} catch (Throwable e) {
			logger.error(e.toString());
			txManager.rollback(status);//回滚事务
			ResultModelMap<Object> resm = new ResultModelMap<Object>(CME.EXCEPTION);
			resm.appendMessage(e.getMessage());
			resm.setExceptionCause(e.getCause());
			return resm;
		}
		txManager.commit(status);//提交事务
		return res;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值