• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

doTransaction() 어드바이스의 return 값 의미가 궁금합니다.

22.03.09 16:17 작성 조회수 212

0

안녕하세요. 

좋은 강의 제공해주셔서 감사합니다.

 

문득... 강의를 보다 Object result 를 return 해주고 있어, 이 반환이 어떤 의미가 있는지 그리고 어느곳에서 사용을 하는지 궁금해 문의 드리고 싶습니다.

 

아래 코드의 7 Line 입니다.

@Around("allOrder() && allService()")
public Object doTransaction(ProceedingJoinPoint joinPoint) throws Throwable {
try {
log.info("[트랜잭션 시작] {}", joinPoint.getSignature());
Object result = joinPoint.proceed();
log.info("[트랜잭션 커밋] {}", joinPoint.getSignature());
return result;
} catch (Exception e) {
log.info("[트랜잭션 롤백] {}", joinPoint.getSignature());
throw e;
} finally {
log.info("[리소스 릴리즈] {}", joinPoint.getSignature());
}
}

 

감사합니다.

답변 1

답변을 작성해보세요.

0

안녕하세요. 준상이님

실제 객체에서 Return 값이 반환되지 않습니다^^

클라이언트 -> AOP -> TARGET

이 구조에서 TARGET이 값을 반환했는데, AOP에서 반환을 안하게 되는 것이지요.

코드로 한번 테스트 해보시면 바로 이해가 되실거에요.

감사합니다.