您的位置:首页 > 编程语言 > Java开发

spring事务

2016-03-09 14:44 609 查看
客户程序调用

// 获取回调业务
TransactionCallback<Object> callback = getTransactionCallBack(params);
TransactionTemplate template = new TransactionTemplate(
transactionManager);
if (propagationBehavior != template.getPropagationBehavior())
{
template.setPropagationBehavior(propagationBehavior);
}

// 事务处理
Object result = template.execute(callback);


/**
* 获取事务执行回调接口
*
* @param context
* @param chainId
* @param logicType
* @return [参数说明]
*
* @return TransactionCallback<Object> [返回类型说明]
* @exception throws [违例类型] [违例说明]
* @see [类、类#方法、类#成员]
*/
private TransactionCallback<Object> getTransactionCallBack(
final Object... params)
{
TransactionCallback<Object> callback = new TransactionCallback<Object>()
{
@Override
public Object doInTransaction(TransactionStatus transactionstatus)
{
try
{
Object result = doBusiness(params);
logger.atFuncDebugLog("Submit transaction successfully ");
return result;
}
catch (Throwable t)
{
transactionstatus.setRollbackOnly();
logger.atFuncDebugLog("Submit transaction failed ",
t.getMessage());
throw t;
}
}
};
return callback;
}


/**
* 业务处理
*
* @return [参数说明]
*
* @return Object [返回类型说明]
* @exception throws [违例类型] [违例说明]
* @see [类、类#方法、类#成员]
*/
public abstract Object doBusiness(Object... params);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: