설정 순서는 아래와 같다.
- Maven Dependency 설정
- Ehcache.xml작성(ehcache 설정파일)
- CacheManager 설정 (xml)
Maven Dependency 설정
<!-- EHCache 모듈 -->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>2.10.6</version>
</dependency>
<!-- Spring Caching Interface -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.20.RELEASE</version>
</dependency>
<!-- EHCache Support 모듈, 다른 Caching 지원모듈 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.3.20.RELEASE</version>
</dependency>
ehcache.xml
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
maxBytesLocalHeap="300M" <!-- CacheManager에 의해 관리되는 캐시의 메모리를 300M로 제한 -->
updateCheck="false">
<!-- 임시저장 경로를 설정 -->
<diskStore path="java.io.tmpdir" />
<!--
Cache에 저장할 레퍼런스의 최대값을 100000으로 지정,
maxDepthExceededBehavior = "continue" : 초과 된 최대 깊이에 대해 경고하지만 크기가 조정 된 요소를 계속 탐색
maxDepthExceededBehavior = "abort" : 순회를 중지하고 부분적으로 계산 된 크기를 즉시 반환
-->
<sizeOfPolicy maxDepth="100000" maxDepthExceededBehavior="continue"/>
<!-- default Cache 설정 (반드시 선언해야 하는 Cache) -->
<defaultCache
eternal="false"
timeToIdleSeconds="0"
timeToLiveSeconds="1200"
overflowToDisk="false"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
</defaultCache>
<!-- 사용하고자 하는 캐시 별 설정 -->
<cache name="LocalCacheData"
eternal="false"
timeToIdleSeconds="0"
timeToLiveSeconds="1200"
overflowToDisk="false"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
</cache>
<cache name="AuthMemberList"
eternal="false"
timeToIdleSeconds="0"
timeToLiveSeconds="1200"
overflowToDisk="false"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
</cache>
</ehcache>
CacheManager Bean 설정
<!-- Annotation 기반 캐시 사용 (@Cacheable, @CacheEvict..) -->
<cache:annotation-driven/>
<!-- EHCache 기반 CacheManager 설정 -->
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
<property name="cacheManager" ref="ehcache"/>
</bean>
<!-- ehcache.xml 설정 로드 -->
<bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:config/ehcache.xml"/>
<property name="shared" value="true"/>
</bean>
'자바·JSP' 카테고리의 다른 글
[JAVA] Stream 매칭(allMatch(), anyMatch(), noneMatch()) (0) | 2021.03.07 |
---|---|
리소스 파일 읽기 (0) | 2020.04.20 |
자바 클래스에서 리소스 로드하기 (0) | 2020.04.18 |
XML 파싱 예제 (0) | 2020.04.11 |
[JAVA] OS별로 CPU정보 가져오기 (0) | 2019.04.05 |