spring ehcache 캐 시 관리
<aop:config>
<!-- -->
<aop:advisor advice-ref="txAdvice" pointcut="execution(* *..*Service.*(..))" order="2"/>
<!-- -->
<aop:advisor advice-ref="cacheAdvice" pointcut="execution(* *..*Service.*(..))" order="0"/>
</aop:config>
<!-- -->
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
<property name="cacheManager" ref="cacheManagerFactoryBean" />
</bean>
<!-- bean -->
<bean id="cacheManagerFactoryBean" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:ehcache.xml" />
</bean>
<!-- key -->
<bean id="surveyparkKeyGenerator" class="com.surveypark.cache.SurveyparkKeyGenerator" />
<!-- -->
<cache:advice id="cacheAdvice" cache-manager="cacheManager" key-generator="surveyparkKeyGenerator">
<cache:caching cache="surveyparkCache">
<cache:cacheable method="get*" />
<cache:cacheable method="load*" />
<cache:cacheable method="find*" />
<cache:cache-evict method="save*" all-entries="true" />
<cache:cache-evict method="update*" all-entries="true"/>
<cache:cache-evict method="delete*" all-entries="true"/>
<cache:cache-evict method="clear*" all-entries="true"/>
<cache:cache-evict method="toggle*" all-entries="true"/>
<cache:cache-evict method="move*" all-entries="true"/>
<cache:cache-evict method="batch*" all-entries="true"/>
<cache:cache-evict method="execute*" all-entries="true"/>
</cache:caching>
</cache:advice>
ehcache.xml
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">
<diskStore path="java.io.tmpdir"/>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
<cache name="surveyparkCache"
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
</ehcache>
public class SurveyparkKeyGenerator implements KeyGenerator{
public Object generate(Object arg0, Method arg1, Object... arg2) {
String className = arg0.getClass().getSimpleName();
String mname = arg1.getName();
String params = StringUtil.arr2Str(arg2);
String key = className + "@" + arg0.hashCode() + "." + mname + "("+params+")" ;
return key;
}
}
StringUtil.java
public static String arr2Str(Object[] arr) {
String temp = "" ;
if(ValidateUtil.isValid(arr)){
for(Object s : arr){
temp = temp + s + "," ;
}
return temp.substring(0,temp.length() - 1);
}
return temp;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.