spring事务

来源:互联网 发布:手机淘宝联盟怎么登录 编辑:程序博客网 时间:2024/05/15 08:58


客户程序调用

        // 获取回调业务        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);


0 0