| cache | 사용할 Cache의 속성을 정의한 Cache의 id를 참조한다. |
| cache.memory | 메모리 Cache를 사용할 것인지 정의한다. false로 설정되면 메모리로 캐싱될 수 없다. | ||
| cache.capacity | Cache에 저장할 수 있는 object의 최대 갯수를 지정한다. 음수로 설정되면 이 기능을 사용하지 않는다. 캐싱 가능한 object의 갯수를 제한하지 않는다. | ||
| cache.algorithm | caching algorithm의 classname을 지정한다. 이 클래스는 com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache를 extend 해야한다. cache capacity가 양수로 설정되면 default algorithm으로 LRUCache가 사용되고, 음수로 설정되면 com.opensymphony.oscache.base.algorithm.UnlimitedCache가 사용된다. | ||
| cache.unlimited.disk | Persistence cache의 size를 제한할 것인지 또는 in-memory cache와 동일한 사이즈로 제한할 것인지를 나타낸다.
이 값이 true 로 설정되면 persistent cache는 제한없이 사용될 수 있다. |
||
| cache.blocking | 새로운 content를 캐싱하거나 이미 캐싱된 content를 검색할 때 block waiting 해야 하는지를 정의한다. | ||
| cache.persistence.class | Persistence cache를 사용하고자 할 때 Persistence cache를 구현한 classname을 정의한다. 이 클래스는 PersistenceListener를 extend 해야한다. | ||
| cache.persistence .overflow.only |
메모리 Cache가 overflow mode일때 Persistence Cache를 사용할지 지정한다. | ||
| cache.event.listeners | Cache에 적용한 event handler를 지정한다. event handler가 여러개 일 경우 각각의 classname을 콤마로 구분하여 정의한다. | ||
| cache.cluster.properties | JavaGroupsBroadcastingListener를 사용할때 이 property를 정의한다. JavaGroups channel properties를 사용한다. JavaGroups의 실행을 제어할 수 있다. | ||
| cache.cluster.multicast.ip | JavaGroupsBroadcastingListener를 사용할 때 이 property를 정의한다. broadcasting을 사용하기 위해 JavaGroups는 multicast IP를 사용해야 한다. | ||
| cache.cluster.jms.node.name | JMS10BroadcastingListener 또는 JMSBroadcastingListener를 사용할 때 이 property를 정의한다. JMS connection factory를 사용한다. | ||
| cache.cluster.jms.topic.name | JMS10BroadcastingListener 또는 JMSBroadcastingListener를 사용할때 이 property를 정의한다. 이것은 JMS topic name 이다. | ||
| cache.cluster.jms.topic.factory | JMS10BroadcastingListener 또는 JMSBroadcastingListener를 사용할때 이 property를 정의한다. 이 노드의 이름은 cluster에 존재하고, 각각의 node마다 unique한 값을 갖는다. | ||
| cache.path | DiskPersistenceListener를 사용할 때 이 property를 정의한다. 데이터를 캐싱하기 위한 path를 지정한다. | ||
| cache.persistence.disk .hash.algorithm |
disk의 filname으로 간단한 cache key를 생성하기 위한 hash algorithm이다. |
<bean id="anyframe.core.cache.ICacheService"
name="cacheService" class="anyframe.core.cache.impl.DefaultCacheService">
<property name="cache" ref="cache" />
</bean>
<bean id="cache" factory-bean="cacheAdministrator" factory-method="getCache"/>
<bean id="cacheAdministrator"
class="com.opensymphony.oscache.general.GeneralCacheAdministrator" destroy-method="destroy">
<constructor-arg index="0">
<props>
<!-- cache의 속성 정의 -->
<prop key="cache.capacity">10</prop>
</props>
</constructor-arg>
</bean>
/**
* DefaultCacheService를 통해 'KEY-1'을 key로 하여 'VALUE-1'을 특정 Cache에 저장한 후, 해당
* Cache로부터 'KEY-1'의 값을 추출해 보는 테스트
*/
public void testGetFromCache() throws Exception {
ICacheService cacheService = (ICacheService) context
.getBean("cacheService");
// 1. Cache로 내용을 넣는다.
cacheService.putInCache("KEY-1", "VALUE-1");
// 2. Cache로부터 아이템을 얻는다.
Object value = cacheService.getFromCache("KEY-1");
boolean checked = ((String) value).equals("VALUE-1");
if (!checked) throw new Exception("fail to get from cache.");
}