2017-08-26 55 views
1

有没有使用注释来配置EHcache的方法。带注释的EhCache配置 - 休眠

我有一个启用缓存的Spring/Hibernate项目。目前我正在使用ehcache.xml来定义实体如何被缓存的配置。

这是我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/ehcache"/> 

    <defaultCache 
     . 
     . 
     . 
    </defaultCache> 

    <cache name="exmaple.model.User" maxEntriesLocalHeap="1000" eternal="false" 
      timeToIdleSeconds="120" timeToLiveSeconds="300"> 
     <persistence strategy="localTempSwap"/> 
    </cache> 

</ehcache> 

我在想,如果这是可能做同样与@Entity的顶部,而不是使用此XML文件的注释。

回答

2

有两部分。一个是Spring Cache和Hibernate。他们都提供注释来告诉应该缓存一个方法或一个实体。

一个示例是Spring Cache的@Cacheable

然后,你有ehcache.xml。这是自己配置缓存。它不会被注释。但它可以通过编程。 Ehcache 3使用建设者很容易。你会看到一个例子here。该示例还使用Spring缓存和Hibernate二级缓存。

Ehcache 2(你正在使用)没有建设者。您需要拨打CacheManager.newInstance(Configuration)并将所需的任何配置放入其中。可悲的是,我手边没有一个例子。

+0

它看起来像控制转换为编程,但似乎事情比使用XML更复杂。话虽如此,我真的很感谢您提供的解决方案,因为它向我展示了如何从Java实现缓存,以备将来需要时使用。 –

+0

我会等待几天,然后再接受这个答案,以防其他人找出使用注释的方法:) –

+0

祝你好运;-) – Henri