【问题标题】:Spring MVC - configuring Ehcache - Not cachingSpring MVC - 配置 Ehcache - 不缓存
【发布时间】:2017-07-14 02:12:45
【问题描述】:

我正在尝试将 Ehcache 与我的 Java Spring MVC Web 应用程序集成。我已按照以下文章中的说明进行操作: https://dzone.com/articles/implementing-ehcache-using。 我在pom.xml 文件中添加了以下依赖项:

<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache</artifactId>
    <version>2.9.0</version>
</dependency>

我的ehcache.xml如下:

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="ehcache.xsd"
    updateCheck="true"
    monitoring="autodetect"
    dynamicConfig="true">

    <diskStore path="java.io.tmpdir" />

    <cache name="swcmRestData"
        maxEntriesLocalHeap="10000"
        maxEntriesLocalDisk="1000"
        eternal="false"
        diskSpoolBufferSizeMB="20"
        timeToIdleSeconds="300" timeToLiveSeconds="600"
        memoryStoreEvictionPolicy="LFU"
        transactionalMode="off">
        <persistence strategy="localTempSwap" />
    </cache>

</ehcache>

我的root-context.xml 中有以下条目:

<!-- EhCache Configuration  -->
<bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:configLocation="classpath:ehcache.xml" p:shared="true"/>
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager" p:cacheManager-ref="ehcache"/>

我有一个方法要启用 ehCache:

@Cacheable(value="swcmRestData", key="url")
public <T> T getEntity(String url, java.lang.Class<T> gt) throws RestException
{
    T t = restClientService.getEntity(url, gt);
    return t;
}

如果将相同的 url 传递给指定的方法,我希望从 ehCache 中检索数据。运行代码时我没有收到任何错误。但看起来缓存不起作用。这里有什么我想念的吗

【问题讨论】:

  • 我猜断点会帮助你。如果它是从缓存中获取的,这个方法将不会被执行。
  • 如果这是一种方式,那么我的缓存不起作用。我不确定出了什么问题
  • stackoverflow.com/questions/16899604/…这是你的情况吗??

标签: java spring-mvc ehcache


【解决方案1】:

可能导致问题的两件事:

  1. 您缺少 Spring 配置,因此在定义的 bean 和缓存注释之间存在链接。实际上,这是您链接的文章中的第 2 点,您在此处未提及。
  2. 正如 cmets 中所建议的,您正在缓存的方法是从同一个类中调用的。这是使用代理时 Spring AOP 实现的限制。如果您将 Spring 配置为进行字节码编织,它将起作用。

如果以上都不是错误的来源,请提供有关您的设置的更多信息。

【讨论】:

  • 这在我将要缓存的方法移动到另一个类时起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-13
  • 1970-01-01
  • 1970-01-01
  • 2012-12-12
  • 2015-03-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多