Ich benutze Wildfly 10.1.0 + Infinispan 8.2.4.Final + Cache-API 1.0.0 versuchen, Infinispan Jcache Interzeptoren in meiner Anwendung mit minimalem Aufwand, ohne programmatische Setup wenn möglich zu ermöglichen. Ich wollte so eine Anmerkung Arbeit machen einige Wörterbücher zu speichern:Deklaratives Cache-Container-Setup - ist das möglich?
@CacheResult(cacheName = "dictionary", cacheKeyGenerator = MyCacheKeyGeneratorImpl.class)
public List getDictionary() {
...
}
ich diese Tätigkeit zunächst begonnen, weil ich Frühling @Cacheable
Anmerkungen verpasst (wir derzeit nicht Frühling config/CDI, nur wenige Bibliotheken wie Spring verwenden Daten JPA-Repositories). Also habe ich heruntergeladen Infinispan Wilfly/EAP-Modul, entpackt es Module Ordner und hinzugefügt, um diese jboss-Deployment-structure.xml Wilfly:
<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>
nun die Annotationen werden verarbeitet und einige Standard-Cache-Behälter verwendet wird "zu schaffen, Wörterbuch "Cache. Jetzt möchte ich diesen Cache-Container genauer abstimmen. Was ist die übliche Methode, die Infinispan-Konfiguration zu injizieren? Ist es möglich, die Moduleinstellungen in die Wilfly-Hauptkonfigurationsdatei (standalone.xml) zu stecken, um diesen Cache-Container so zu definieren oder in einer separaten Datei anzugeben?
<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>
Jede Hilfe wird sehr geschätzt.
Vielen Dank. Ich habe endlich, was ich mit Ehcache wollte, aber ich werde die Frage für eine Referenz hinterlassen. – dfche
Leider konnten wir Ihnen nicht helfen. Wenn Sie Ihre Ehcache-basierte Lösung auf Github o.ä. teilen könnten, können wir sie prüfen und sehen, wie wir die Dinge in Zukunft verbessern können. Wie klingt das? –
@ GalderZamarreño danke für die Beantwortung, ich werde einen generischen ehcache Anwendungsfall machen und wenn für Ihre Referenz so schnell wie möglich. – dfche