naver / arcus-spring

ARCUS as a caching provider for the Spring Cache Abstraction
Apache License 2.0
26 stars 16 forks source link

FEATURE: enables ehcache creation by name and cachemanager for cache … #37

Closed hjyun328 closed 3 years ago

hjyun328 commented 3 years ago

이름만으로 EhArcusFrontCache를 생성할 수 있도록 생성자를 추가하였습니다.

EhCache는 아래의 xml을 통해서 캐시 인스턴스를 생성하고 CacheManager에서 불러올 수 있습니다. EhArcusFrontCache에 cache name만 생성자로 전달하여, xml 속성값을 참조하고 캐시 인스턴스를 불러와 front cache 기능을 사용할 수 있도록 하였습니다.

<!-- ehcache.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<ehcache
     maxBytesLocalHeap="1000">
    <defaultCache
      timeToIdleSeconds="120"
      timeToLiveSeconds="120"
      maxBytesLocalHeap="50%">
    </defaultCache>
  <cache
    name="test"
    timeToIdleSeconds="240"
    maxBytesLocalHeap="50%">
  </cache>
</ehcache>

==>

// timeToIdleSeconds=240, timeToLiveSeconds=0, maxBytesLocalHeap=500
new EhArcusFrontCache("test");          // ehcache.xml test cache 적용
 // timeToIdleSeconds=120, timeToLiveSeconds=120, maxBytesLocalHeap=500
new EhArcusFrontCache("noname");    // ehcache.xml의 defaultCache 적용

CacheManager newCacheManager = CacheManager.create("ehcache-newtest.xml");
new EhArcusFrontCache("newtest", newCacheManager);    //  ehcache-newtest.xml 적용
sUpniverse commented 3 years ago

@hjyun328

new EhArcusFrontCache("newtest", newCacheManager);  //  ehcache-newtest.xml 적용

이 부분 또한 default 설정이 적용되어서 인스턴스가 생성되는 것이죠~?

jhpark816 commented 3 years ago

@hjyun328 default cache manager 설정과 default cache 설정에 관한 XML 파일은 어디에 존재하나요 ? 전체적으로 설명 한번 들으면 좋을 것 같습니다.

hjyun328 commented 3 years ago

@hjyun328

new EhArcusFrontCache("newtest", newCacheManager);  //  ehcache-newtest.xml 적용

이 부분 또한 default 설정이 적용되어서 인스턴스가 생성되는 것이죠~?

네 ehcache-newtest.xml의 defaultCache 설정을 사용하여 캐시 인스턴스가 생성됩니다. (ehcache.xml의 defaultCache 설정은 사용되지 않습니다.)

sUpniverse commented 3 years ago

아 xml을 잘못 보았네요 ehcache-newtest.xml 내에 설정된 newtest혹은 설정 안되어있다면 해당 default cache가 적용되겠네요

리뷰 완료했습니다 @jhpark816 @hjyun328