naver / arcus-spring

ARCUS as a caching provider for the Spring Cache Abstraction
Apache License 2.0
26 stars 16 forks source link

INTERNAL: add builder and transaction for ArcusCacheManager #98

Closed oliviarla closed 2 months ago

oliviarla commented 2 months ago

🔗 Related Issue

⌨️ What I did

jhpark816 commented 2 months ago

@oliviarla 질문입니다. AbstractTransactionSupportingCacheManager를 상속받아 얻는 이득은 무엇인가요?

oliviarla commented 2 months ago

@jhpark816

AbstractTransactionSupportingCacheManager를 상속받아 얻는 이득은 무엇인가요?

Spring Transaction에 의해 관리될 수 있도록 하는 것이 목적입니다. ArcusCache의 put, evict, clear 메서드가 호출되었을 때 Spring 트랜잭션의 커밋 후에 수행되도록 합니다.

참고로 Spring Transaction의 커밋 시점에 맞추어 작업이 수행되도록 지정할 수 있는데요, beforeCommit, beforeCompletion, afterCommit(AbstractTransactionSupportingCacheManager를 통해 적용하는 시점), afterCompletion 네 가지 시점에 수행되도록 설정할 수 있습니다.

현재 타사 Cache 구현체들에서는 대부분 이를 상속받고 있습니다.

jhpark816 commented 2 months ago

@oliviarla 아래와 같이 정리합시다.