Propagation propagation = atDefine.getPropagationStrategy().getStrategy(targetMethod);
Isolation isolation = atDefine.getIsolationStrategy().getStrategy(targetMethod);
TranOperations around = atDefine.getAround();
//
TransactionManager manager = Manager.getTransactionManager(dataSource);
TransactionStatus tranStatus = null;
try {
tranStatus = manager.getTransaction(propagation, isolation);
return around.execute(tranStatus, invocation);
} catch (Throwable e) {
if (tranStatus != null) {
tranStatus.setRollbackOnly();
}
throw e;
} finally {
if (tranStatus != null && !tranStatus.isCompleted()) {
manager.commit(tranStatus);
}
}
}