Spring-модули кеширования не работают ... тихо - PullRequest
2 голосов
/ 24 февраля 2009

Я пытаюсь использовать декларативное кэширование из проекта Spring Modules.

Это не работает, т.е. кажется, что ничего не кэшируется.

Вот моя конфигурация:

<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>

И вот, вот логирование, когда Spring загружает контекст приложения ...

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...

После этого я попадаю на страницу, которая вызывает метод с префиксом «get» из bean-компонента «myServiceBean». Но ничего не регистрируется, что происходит любое кеширование. Я включил ведение журнала вплоть до отладки для модулей Spring, пакета кэша Spring и DEBUG ..., поскольку примеров Spring Modules довольно мало и они далеко в Интернете, мне было интересно, видел ли кто-нибудь это раньше ...

Ответы [ 2 ]

2 голосов
/ 24 февраля 2009

Вам следует создать файл ehcache.xml для вашей конфигурации, поскольку я не верю, что отказоустойчивый кеш работает с декларативным кешированием. Мы настроили наше кеширование, используя XML-схему и аннотации модулей Spring ehcache. Если использование явного ehcache.xml не решает вашу проблему, то я могу найти некоторый код, который делает это (по-вашему).

1 голос
/ 01 мая 2010

Я являюсь одним из авторов нового проекта, предназначенного для обеспечения интеграции Ehcache для проектов Spring 3 с помощью аннотаций:

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

Библиотека предоставляет две аннотации на уровне метода в духе Spring's @Transactional:

@ Cacheable @ TriggersRemove

При соответствующей настройке в приложении Spring этот проект создаст аспекты кэширования во время выполнения ваших аннотированных методов @Cacheable.

Документацию по использованию можно найти в вики проекта

...