我将把我的发现放在这里,以便它们可以作为参考。
的 Hazelcast 强>
正如mdogan回答的那样,Hazelcast不支持这一点。它有这个概念 带通配符的配置 (校验 这个回复 ),但那些不适用于以编程方式配置的缓存。
的 的Ehcache 强>
在Ehcache,我找到了一种方法。按照 他们的文件 :
配置所有以编程方式创建的Cache实例继承的默认模板
您需要声明一个默认模板,如下所示:
<config xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns='http://www.ehcache.org/v3' xmlns:jsr107='http://www.ehcache.org/v3/jsr107' xsi:schemaLocation=" http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core-3.0.xsd http://www.ehcache.org/v3/jsr107 http://www.ehcache.org/schema/ehcache-107-ext-3.0.xsd"> <service> <jsr107:defaults default-template="defCache"> </jsr107:defaults> </service> <cache-template name="defCache"> <heap unit="entries">20</heap> </cache-template> </config>
并在该缓存中设置您喜欢的所有配置。这种声明性配置补充甚至覆盖了程序化配置。可以找到如何指定Ehcache的最大大小的指示 这里 。
Hazelcast JCache实现不支持混合声明性和命令式配置。
但是Hazelcast的 CacheConfiguration 实施 CacheConfig ,允许传球 CompleteConfiguration 作为constuctor参数。 CacheConfig 复制给定的属性 CompleteConfiguration 然后你可以设置其他属性。
CacheConfiguration
CompleteConfiguration
CacheConfig
不是最好的,但这样您就可以分离标准缓存属性和专有配置的配置。