Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带注释的EhCache配置-Hibernate_Java_Xml_Hibernate_Annotations_Ehcache - Fatal编程技术网

Java 带注释的EhCache配置-Hibernate

Java 带注释的EhCache配置-Hibernate,java,xml,hibernate,annotations,ehcache,Java,Xml,Hibernate,Annotations,Ehcache,是否有一种使用注释配置EHcache的方法 我有一个启用了缓存的Spring/Hibernate项目。目前,我正在使用ehcache.xml定义实体缓存方式的配置 这就是我的ehcache.xml的样子: <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="true"

是否有一种使用注释配置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>


有两部分。一个是Spring缓存和Hibernate。它们都提供了注释,告知应该缓存方法或实体

例如,Spring Cache中的
@Cacheable

然后是
ehcache.xml
。这是为了配置缓存本身。它不会被注释所取代。但它可以通过编程实现。Ehcache 3使构建器的使用变得简单。您将看到一个示例。此示例还使用Spring缓存和Hibernate二级缓存


Ehcache 2(您正在使用的)没有生成器。您需要调用
CacheManager.newInstance(Configuration)
并在其中放入您想要的任何配置。遗憾的是,我手头上没有一个示例。

看起来控件确实可以转换为编程控件,但似乎事情比使用xml更复杂。话虽如此,我还是非常感谢您提供的解决方案,因为它向我展示了如何从java实现缓存,以备将来需要。我会再等几天,然后接受这个答案,以防其他人找到使用注释的方法:)