이전 단계에서 우리는 put() method에 대한 overload로 mortal entries (생명주기를 갖는 데이터)를 저장했다. 하지만, 모든 데이터에 대해서 같은 lifespan으로 유효기간을 설정하고 싶다면, Cache가 default expiration value를 가지도록 설정할 수 있다. 이렇게 하기 위해서 org.infinispan.configuration.cache.Configuration object를 파라미터로 넘겨서 DefaultCacheManager를 구성할 것이다. Infinispan의 Configuration은 대부분 runtime시에는 변경할 수 없다. 그리고 ConfigurationBuilder를 통해서 생성할 수 있다. 위의 use-case (ConfigurationBuilder를 이용)의 경우, 모든 entries에 대해 5초간의 기본 유효기간을 가지도록 cache configuration을 생성해보자. 다음 코드는 어떻게 생성할 수 있는지를 보여준다.
ConfigurationBuilder config = new ConfigurationBuilder();
config.expiration().lifespan(5, TimeUnit.SECONDS);
cacheManager = new DefaultCacheManager(config.build());
Configuration Builder는 fluent pattern (method cascading or method chaning)을 사용한다. 따라서 chained method를 통해서 configuration을 튜닝할 수 있다. 다시 application을 실행해보자.
git checkout -f step-4
mvn clean package exec:exec
이전 단계와 같은 결과가 나올 것이다. 우리는 application의 동작을 변경한 것이 아니라 cache에 대한 semantics만 변경했다.
댓글을 달아 주세요
댓글 RSS 주소 : http://www.yongbi.net/rss/comment/671