14

次の構成がある場合:

<defaultCache timeToIdleSeconds="120"
        timeToLiveSeconds="120" />
<cache name="test"
        timeToLiveSeconds="300" />

timeToIdleSecondsキャッシュの値はどうなりますtestか?デフォルトのキャッシュから継承されるため、120になりますか、それともマニュアルに記載されているデフォルト値の0(無限大)を使用しますか?

4

2 に答える 2

15

timeToIdleSecondsはデフォルト値であり、「defaultCache」から継承されません。「defaultCache」は、すべてのキャッシュに「デフォルト」を提供するわけではないという意味で、少し誤称/誤解を招く可能性がありますが、動的に追加できる/動的に追加できるキャッシュの構成を指定する方法です-cacheManager.addCache(String cacheName )。

http://www.ehcache.org/ehcache.xmlから、そのタグのドキュメントには次のように書かれています。

デフォルトのキャッシュ構成。
これらの設定は、を使用してプログラムで作成されたキャッシュに適用されます
 CacheManager.add(String cacheName)。この要素はオプションであり、
 CacheManager.add(String cacheName)が存在しない場合、CacheExceptionがスローされます
 defaultCacheには、予約済みのキャッシュ名である暗黙の名前「default」があります。
于 2012-06-07T16:11:18.357 に答える
0
private Ehcache cloneDefaultCache(final String cacheName) {
        if (defaultCache == null) {
            return null;
        }
        Ehcache cache;
        try {
            cache = (Ehcache) defaultCache.clone();
        } catch (CloneNotSupportedException e) {
            throw new CacheException("Failure cloning default cache. Initial cause was " + e.getMessage(), e);
        }
        if (cache != null) {
            cache.setName(cacheName);
        }
        return cache;
    }
Method
    cloneDefaultCache(String)
Found usages  (2 usages found)
    Library  (2 usages found)
        Unclassified usage  (2 usages found)
            Maven: net.sf.ehcache:ehcache-core:2.6.11  (2 usages found)
                net.sf.ehcache  (2 usages found)
                    CacheManager  (2 usages found)
                        addCache(String)  (1 usage found)
                            1173 Ehcache clonedDefaultCache = cloneDefaultCache(cacheName);
                        addCacheIfAbsent(String)  (1 usage found)
                            1857 Ehcache clonedDefaultCache = cloneDefaultCache(cacheName);
于 2019-10-14T08:34:08.763 に答える