2 Stimmen

Spring-Module-Caching funktioniert nicht... im Stillen

Ich versuche, das deklarative Caching aus dem Spring Modules-Projekt zu verwenden.

Es funktioniert nicht, d. h. es scheint nichts zwischengespeichert zu werden.

Hier ist meine Konfiguration:

<bean id="cacheManager"
  class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
</bean>

<bean id="cacheProviderFacade"
  class="org.springmodules.cache.provider.ehcache.EhCacheFacade">
  <property name="cacheManager" ref="cacheManager" />
</bean>

<bean id="cacheableService"
    class="org.springmodules.cache.interceptor.proxy.CacheProxyFactoryBean">
    <property name="cacheProviderFacade" ref="cacheProviderFacade" />
    <property name="cachingModels">
        <props>
            <prop key="get*">cacheName=default</prop>
        </props>
    </property>
    <property name="flushingModels">
        <props>
            <prop key="update*">cacheNames=default</prop>
        </props>
    </property>
    <property name="target" ref="myServiceBean" />
</bean>

Und hier ist die Protokollierung, wenn Spring den Anwendungskontext lädt...

24 Feb 2009 14:26:20,785 INFO    org.springframework.cache.ehcache.EhCacheManagerFactoryBean - Initializing EHCache CacheManager
24 Feb 2009 14:26:20,801 DEBUG net.sf.ehcache.CacheManager - Configuring ehcache from classpath.
24 Feb 2009 14:26:20,801 WARN  net.sf.ehcache.config.ConfigurationFactory - No configuration found. Configuring ehcache from ehcache-failsafe.xml  found in the classpath: zip:C:/bea/weblogic81/server/bin/myserver/.wlnotdelete/extract/myserver_threeoneoneonline_threeoneoneonline/jarfiles/WEB-INF/lib/ehcache-1.3.0.jar!/ehcache-failsafe.xml
24 Feb 2009 14:26:20,801 DEBUG net.sf.ehcache.config.ConfigurationFactory - Configuring ehcache from URL: zip:C:/bea/weblogic81/server/bin/myserver/.wlnotdelete/extract/myserver_threeoneoneonline_threeoneoneonline/jarfiles/WEB-INF/lib/ehcache-1.3.0.jar!/ehcache-failsafe.xml
24 Feb 2009 14:26:20,801 DEBUG net.sf.ehcache.config.ConfigurationFactory - Configuring ehcache from InputStream
24 Feb 2009 14:26:20,816 DEBUG net.sf.ehcache.config.DiskStoreConfiguration - Disk Store Path: C:\DOCUME~1\bpapa\LOCALS~1\Temp\
24 Feb 2009 14:26:20,832 DEBUG net.sf.ehcache.config.ConfigurationHelper - No CacheManagerEventListenerFactory class specified. Skipping...
24 Feb 2009 14:26:20,832 DEBUG net.sf.ehcache.config.ConfigurationHelper - No CachePeerListenerFactoryConfiguration specified. Not configuring a CacheManagerPeerListener.
24 Feb 2009 14:26:20,847 DEBUG net.sf.ehcache.config.ConfigurationHelper - No CachePeerProviderFactoryConfiguration specified. Not configuring a CacheManagerPeerProvider.
24 Feb 2009 14:26:20,863 DEBUG net.sf.ehcache.config.ConfigurationHelper - No BootstrapCacheLoaderFactory class specified. Skipping...

Danach stoße ich auf eine Seite, die eine Methode mit dem Präfix "get" von der Bean "myServiceBean" aufruft. Es wird jedoch nicht protokolliert, dass eine Zwischenspeicherung stattfindet. Ich habe die Protokollierung den ganzen Weg bis zu Debug für springmodules, spring's Cache-Paket und DEBUG gedreht... seit Spring Modules Beispiele sind ziemlich wenige und weit zwischen auf dem Web, ich frage mich, ob jemand dies vor gesehen hat...

2voto

Patrick Punkte 3786

Sie sollten eine ehcache.xml-Datei für Ihre Konfiguration erstellen, da ich nicht glaube, dass der ausfallsichere Cache mit deklarativem Caching funktioniert. Wir richten unser Caching mit dem XML-Schema und den Anmerkungen der ehcache Spring-Module ein. Wenn die Verwendung einer expliziten ehcache.xml-Datei Ihr Problem nicht löst, kann ich einen Code ausgraben, der es (fast) so macht wie Sie.

1voto

Eric Punkte 472

Ich bin einer der Autoren eines neuen Projekts, das die Integration von Ehcache in Spring 3-Projekte über Annotationen ermöglichen soll:

http://code.google.com/p/ehcache-spring-annotations/

Die Bibliothek bietet zwei Annotationen auf Methodenebene im Geiste von Spring's @Transactional:

@Cacheable @TriggersRemove

Bei entsprechender Konfiguration in Ihrer Spring-Anwendung erstellt dieses Projekt zur Laufzeit Caching-Aspekte um Ihre @Cacheable-annotierten Methoden.

Die Nutzungsdokumentation ist im Projekt-Wiki zu finden

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X