아래와 같이 설정하면 Transaction의 외부에서 아래의 Aspect가 실행되기 때문에 Exception 이 발생했을 경우 rollback이 우선 처리되고 응답 메시지가 생성된다.
aspect 파일: @Aspect() @Order(1) @Service("myAspect") public class MyAspect { @Around("execution(public com.my.IServiceResult com.my.*ServiceImpl.*(..))") public IServiceResult handleDwrMethod(ProceedingJoinPoint joinpoint) { try { Object[] args = joinpoint.getArgs(); return (IServiceResult) joinpoint.proceed(args); } catch(Throwable ex) { return createErrorResult(ex); } } } spring 설정 파일: <tx:annotation-driven transaction-manager="queryTxManager" order="2" />
댓글 없음:
댓글 쓰기