<현상>
- Spring @Async를 사용하여 비동기 메소드를 작성하고 기존에 CompletableFuture를 사용해서 값을 넘겨받던 부분이 어느순간부터 null 로 넘어오는 현상
<원인>
- 디버깅중에 원인을 찾았다. 기존에 Logging Aspect를 이용하여 @Async 메소드에 대해서 로깅처리하던 부분이 있었다.
- 기존에 @After advice를 활용하던부분을 @Around advice로 변경하면서 발생하는 문제였다.
- @Around를 사용할 경우 proceed 를 수행하여 다음단계로 넘어가게 되는데, 이때 잊지말고 리턴값을 전달해주어야 한다. (이런 초보적인 실수를 ㅠㅠ)
@Around("...PointCut()") public Object logger(ProceedingJoinPoint pjp) throws Throwable { log.debug("before {}", ...); Object obj = pjp.proceed(); log.debug("after {}", ...); return obj; }
'Java' 카테고리의 다른 글
Spring Security 기능 활용 #1 (Filter Chain) (0) | 2022.01.10 |
---|---|
Spring WebClient 사용 #2 (MVC + WebClient 구조) (1) | 2021.12.17 |
Spring JPA, SecurityContext사용시 ThreadLocal 사용범위 관련 #2 (0) | 2021.09.15 |
Spring JPA, SecurityContext사용시 ThreadLocal 사용범위 관련 #1 (0) | 2021.09.10 |
Redis 캐시사용시 생성되는 기본키 및 prefix 오류 (0) | 2021.09.01 |