• Hibernate+ehcache二级缓存


    1、  首先导包ehcache-1.2.3.jar,放在WEB-INF/lib中。

    2、  设置ehcache.xml,默认的位置在class-path,可以放在你的src目录下:

    <ehcache>

    <!--

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

        -->

        <diskStore path="e:\\cache"/>

        <defaultCache

                maxElementsInMemory="10000"<!-- 缓存最大数目 -->

                eternal="false"<!-- 缓存是否持久 -->

                timeToIdleSeconds="60"<!-- 当缓存闲置n秒后销毁 -->

                timeToLiveSeconds="60"<!-- 当缓存存活n秒后销毁-->

                overflowToDisk="true"<!-- 是否保存到磁盘,当系统当机时-->

                diskPersistent="false"

                diskExpiryThreadIntervalSeconds="120"          

                />

    </ehcache>

    3、  在hibernate.cfg.xml中添加如下代码:

    <!-- 设置Hibernate的缓存接口类,这个类在Hibernate包中 -->    

    <property name="hibernate.cache.provider_class">

               org.hibernate.cache.EhCacheProvider

           </property>

    <!-- 是否使用查询缓存 –

    说明:如果不设置“查询缓存”,那么hibernate只会缓存使用load()方法获得的单个持久化对象,如果想缓存使用findall()、list()、Iterator()、createCriteria()、createQuery()等方法获得的数据结果集的话,就需要设置hibernate.cache.use_query_cache true 才行.

    -->   

    <property name="hibernate.cache.use_query_cache">true</property>

    4、Hibernate在默认情况下并不会对所有实体对象进行缓存,所以,我们需要指定缓存哪些对象, 在实体对象的映射文件中(相应的<class>标签内部),添加如下配置:   

    <cache usage="read-only"/>     

    usage="read-only"是“只读”缓存策略。     

    注意,这个<cache>标签只能放在<class>标签的内部,而且必须处在<id>标签的前面!这个<cache>标签放在哪些<class>标签下面,就说明会多这些类的对象进行缓存

    对于第4步,有一个可选的方案在hibernate.cfg.xml文件中指定哪些类的对象需要缓存,而不需要使用<cache>标签来指定。如在hibernate.cfg.xml中添加如下配置:

    <class-cache class="com.andy.pojo.Users" usage="read-only"/>

    注意,这个<class-cache>标签必须放在<mapping>标签的后面!!

  • 相关阅读:
    PostgreSQL 模式(SCHEMA)
    PostgreSQL学习---模式schema
    psql 工具详细使用介绍
    CentOS 下 VNC Server 的配置与使用
    如何处理/boot/efi/EFI/cento from install of fwupdate-efi
    uGUI练习(二) Animate UI
    uGUI练习(一) Anchor
    uGUI练习 开篇
    Fix "Missing Scripts"
    用uGUI开发自定义Toggle Slider控件
  • 原文地址:https://www.cnblogs.com/zhouwenwu/p/2336465.html
Copyright © 2020-2023  润新知