지금까지 우리는 programmatic API를 통해서 infinispan을 설정하는 것에 대해서 알아보았다. 그러나 code에서 configuration을 분리하여 구성할 수 있다. 이런 목적으로 우리는 declarative configuration을 사용할 수 있다. Infinispan의 모든 항목들은 external XML file을 사용하여 설정할 수 있다. 무엇보다도 XML format으로 configuration을 변환해 보자.
<?xml version="1.0" encoding="UTF-8"?>
<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:infinispan:config:7.1 http://www.infinispan.org/schemas/infinispan-config-7.1.xsd" xmlns="urn:infinispan:config:7.1">
<cache-container default-cache="default">
<transport cluster="WeatherApp"/>
<distributed-cache name="default" mode="SYNC">
<expiration lifespan="5000"/>
<groups enabled="true">
<grouper class="org.infinispan.tutorial.embedded.LocationWeather$LocationGrouper"/>
</groups>
</distributed-cache>
</cache-container>
</infinispan>
이 파일을 maven의 src/main/resources 폴더에 위치시키면, classpath에서 사용할 수 있다. 그리고 DefaultCacheManager 설정으로 다음과 같이 사용할 수 있다.
cacheManager = new DefaultCacheManager(WeatherApp.class.getResourceAsStream("/weatherapp-infinispan.xml"));
이제 코드를 실행해 보자.
git checkout -f step-11
mvn clean package exec:exec # from terminal 1
mvn exec:exec # from terminal 2
우리가 무엇을 기대했건 간에, 출력 결과는 이전과 같을 것이다.
댓글을 달아 주세요
댓글 RSS 주소 : http://www.yongbi.net/rss/comment/678