반응형
@Caching(evict = {
@CacheEvict(value="", key="", beforeInvocation = true)
})
다음과 같은 어노테이션이 메소드에 선언되어 있었을 때, 에러 없이 실행은 되었지만 아무런 결과가 나오지 않았다.
결론은 실행되지 않았던 것이다.
이는 beforeInvocation = true 때문이었다.
beforeInvocation 속성으로 메서드 실행 이후(기본값)나 이전에 제거를 해야 하는 지를 지정할 수도 있다. 메서드 실행 이후에 실행되는 경우는 다른 어노테이션과 같은 의미를 가져서 메서드가 성공적으로 완료되면 캐시에서 동작(여기서는 제거)이 실행된다. 메서드가 실행되지 않거나(캐시 되어서) 예외가 던져지면 제거가 실행되지 않는다. 메서드 실행 이전에 실행되는 경우(beforeInvocation=true)에는 메서드가 호출되기 전에 항상 제거가 발생해서 제거가 메서드 결과에 의존하지 않는 경우에 유용하다.
https://blog.outsider.ne.kr/1094
[Spring 레퍼런스] 28장 캐시 추상화 :: Outsider's Dev Story
이 문서는 개인적인 목적이나 배포하기 위해서 복사할 수 있다. 출력물이든 디지털 문서든 각 복사본에 어떤 비용도 청구할 수 없고 모든 복사본에는 이 카피라이트 문구가 있어야 한다. ## 28.
blog.outsider.ne.kr
반응형
'애플리케이션 개발 > Spring' 카테고리의 다른 글
[Spring] @Async (0) | 2022.06.22 |
---|---|
[Spring] Redis Client Tool P3X 설치 (0) | 2022.06.15 |
[JUnit5] No ParameterResolver registered for parameter 에러 (0) | 2022.04.26 |
[Spring] Gradle (0) | 2022.04.24 |
Controller (0) | 2020.11.19 |