spring-boot-starter-cache
추가@EnableCaching
@SpringBootApplication
public class SpringProjectApplication {
public static void main(String[] args) {
SpringApplication.run(SpringProjectApplication.class, args);
}
}
캐싱 어노테이션은 Spring AOP를 통해 처리
@Cacheable
: 캐시 저장@Cacheput
: 캐시 갱신@CacheEvict
: 캐시 삭제pulbic method에만 사용가능
같은 객체 내의 method끼리 호출 시에는 @Cacheable이 설정되어있어도 캐싱되지 않음
@Cacheable(value = "menu")
public List<OrderEntity> getOrderMenu(){
System.out.println("메뉴 조회 / 캐시 저장 ");
List<OrderEntity> menu = repository.findAll();
return menu;
}
@CachePut(value = "menu")
public OrderEntity updateMenu(OrderEntity menu){
System.out.println("메뉴 수정 / 캐시 업데이트");
OrderEntity result = repository.save(menu);
return result;
}
@CacheEvict(value = "menu", allEntries = true)
public String deleteMenu(){
System.out.println("캐시 삭제");
return "삭제 완료";
}