Я использую Wildfly 10.1.0 + Infinispan 8.2.4.Final + cache API 1.0.0, пытаясь включить Infinispan Jcache Interceptors в своем приложении с минимальными усилиями, по возможности без программной настройки. Я хотел, чтобы такая аннотация работала для хранения некоторых словарей:
@CacheResult(cacheName = "dictionary", cacheKeyGenerator = MyCacheKeyGeneratorImpl.class)
public List getDictionary() {
...
}
Сначала я начал это занятие, потому что пропустил аннотации Spring @Cacheable
(в настоящее время мы не используем конфигурацию Spring/CDI, а только несколько библиотек, таких как Spring Data JPA Repositories). Итак, я скачал модуль Infinispan Wilfly/EAP, распаковал его в папку модулей Wilfly и добавил это в jboss-deployment-structure.xml:
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<dependencies>
<module name="org.infinispan" slot="ispn-8.2" services="export"/>
<module name="org.infinispan.cdi" slot="ispn-8.2" services="export"/>
<module name="org.infinispan.jcache" slot="ispn-8.2" services="export"/>
</dependencies>
</deployment>
</jboss-deployment-structure>
Теперь аннотации обрабатываются, и некоторый контейнер кеша по умолчанию используется для создания кеша «словарь». Теперь я хочу настроить этот контейнер кеша. Каков общий способ внедрения конфигурации infinispan? Можно ли подключить настройки модуля в основной конфигурационный файл Wilfly (standalone.xml), чтобы определить этот кеш-контейнер вот так, или указать их в отдельном файле?
<cache-container name="JCacheContainer" default-cache="default" module="org.infinispan.jcache">
<local-cache name="default">
<transaction mode="NONE"/>
<eviction strategy="LRU" max-entries="1000"/>
<expiration max-idle="3600000"/>
</local-cache>
<local-cache name="dictionary">
<locking acquire-timeout="15000" isolation="REPEATABLE_READ"/>
<transaction locking="PESSIMISTIC" mode="NONE"/>
<eviction strategy="LRU" max-entries="100000"/>
<expiration lifespan="15000" max-idle="15000"/>
</local-cache>
</cache-container>
Любая помощь очень ценится.