ehcache spring 예제

이 게시물에서는 EhCache 공급자를 사용 하려고 합니다. 아래 예제에서는 별도의 구성 클래스에서 EhCache 관련 빈을 사용하도록 설정하는 캐시를 보여 주며 있습니다. 기본 정의를 유지하려는 경우 이러한 두 빈을 재정의할 필요는 없지만 캐시 트랜잭션을 사용하여 put/evict 작업을 진행 중인 Spring 관리 트랜잭션과 동기화하도록 하려고 했습니다. org.springframework.cache.cache.cache & org.springframework.cache.cache.CacheManager는 스프링에서 제공하는 주요 추상화입니다. 캐싱 논리를 제공하는 추상화이지만 캐시 데이터를 저장하는 실제 저장소는 제공하지 않습니다. 다행히도 JDK java.util.concurrent.CurrentMap 기반 캐시, EhCache, 젬파이어 캐시, 카페인, 구아바 캐시 및 JSR-107 호환 캐시와 같은 추상화구현은 거의 없습니다. 전체 예제는 처음에 MySQL 데이터베이스에서 항목 목록을 읽고 다음 후속 호출은 EhCache에서 데이터를 가져옵니다. 독자를 환영합니다,이 튜토리얼에서, 우리는 봄 부팅 응용 프로그램과 EhCache 통합을 탐구한다. 다음 주석은 스프링 부팅 응용 프로그램에서 사용됩니다. ehcache 구성을 포함하는 ehcache.xml 파일 만들기. ehcache 구성에 대한 자세한 내용은 여기를 참조하십시오. 아래 예제에서는 특정 제품을 반환하는 사소한 서비스를 보여 줍니다. 실제로 제품을 조회하는 방법은 의도적으로 개념을 이해하기 위해 느리게 만들어집니다.

다음 코드를 기본 클래스에 추가하여 기본 메서드에서 응용 프로그램을 부트스트랩합니다. 스프링 부팅 응용 프로그램의 진입점은 @SpringBootApplication 개의 부어명과 정적 주 메서드를 포함하는 클래스입니다. SpEL 표현을 다루는 훌륭한 블로그 게시물은 http://blog.springsource.com/2011/02/23/spring-3-1-m1-caching/ 참조하십시오. 4.1 ehcache.xml 파일을 만들어 Ehcache에게 데이터를 캐시하는 방법과 위치를 알려줍니다. 예를 들어 Dog getDog(문자열 이름)라는 메서드가 있다고 가정합니다. @CachePut 개의 추가를 사용하면 캐시를 업데이트할 수 있습니다. 아래 예제에서는 ID로 회사를 저장하는 캐시가 업데이트됩니다. 회사 이름은 변경할 수 있으므로 해당 회사의 이전 이름 값을 모르기 때문에 캐시를 업데이트할 수 없습니다. 이를 진행하기 위해 회사 캐시의 모든 항목을 이름으로 제거합니다.

이제 프로젝트를 WAR로 내보내고 Tomcat에 배포하는 경우 http://localhost:8080/EhCacheExample/message/set/1/test_message HTTP POST 요청을 만들어 ID=1에 대해 “test_message”와 같은 메시지를 설정할 수 있습니다. 그런 다음 http://localhost:8080/EhCacheExample/message/1 HTTP GET 요청으로 “test_message”를 다시 얻을 수 있어야 합니다. 나는 내 테스트를 할 수있는 편리한 REST 클라이언트로 불면증을 사용했다. 스프링 부팅과 Ehcache를 사용하는 예를 살펴 보겠습니다. JSR-107 캐시 관리자의 구현을 제공 하 므로 Ehcache 버전 3을 사용 합니다. 나는 스프링 부팅을 사용하고 있기 때문에 EhCache.xml을 사용하고 싶지 않아요.