[Spring] 캐시(Cache) 추상화와 사용법 알아보기(@Cacheable, @CachePut, @CacheEvict)
1. Gradle 설정
dependencies {
// ...
implementation 'org.springframework.boot:spring-boot-starter-cache'
}
2. 캐시 설정
스프링에서 캐시를 사용하기 위해서는 캐시를 적용할 대상 메소드에 @Cacheable, @CachePut, @CacheEvict 등의 어노테이션을 적용해야 합니다.
@Cacheable(value = "cacheName", key = "#key")
public Object findData(String key) {
// ...
}
@CachePut(value = "cacheName", key = "#key")
public Object saveData(String key, Object value) {
// ...
}
@CacheEvict(value = "cacheName", key = "#key")
public void deleteData(String key) {
// ...
}
위의 코드는 cacheName이라는 이름의 캐시에서 key라는 키값으로 데이터를 조회하는 메소드입니다. 해당 메소드의 결과가 캐시에 저장되어 있을 경우, 캐시에서 데이터를 조회하게 됩니다.
@CachePut은 메소드가 실행되는 동안 항상 결과를 캐시에 저장하는 용도로 사용됩니다.
@CacheEvict는 캐시에서 데이터를 제거하는 용도로 사용됩니다.
캐시에서 데이터를 조회하거나 저장하고 삭제하기 위해 value와 key 속성을 사용합니다. value는 캐시 이름을, key는 캐시에서 데이터를 구분하기 위한 키값을 의미합니다.
'코딩 > Spring' 카테고리의 다른 글
[Spring] ModelMapper를 이용해 DTO와 Entity 변환 방법 (0) | 2022.11.18 |
---|---|
Spring @Cacheable을 내부 메서드에 쓰면 안되는 이유 (0) | 2022.11.16 |
[Spring] Entity에 protected 생성자를 만드는 이유(@Noargsconstructor) (0) | 2022.11.15 |
[Spring] @RequestBody가 빈 생성자가 필요한 이유 (0) | 2022.11.14 |
[Spring] LocalDateTime.now() 테스트하기 (0) | 2022.11.14 |