hibernate二级只读缓存设置--oracle 是对sessionFactory而言的

    xiaoxiao2021-03-25  63

    配置二级缓存的文件   hibernate.cfg.xml 

    <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"                                          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration>  <session-factory name="">   <!-- 配置oracle驱动 -->   <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>   <property name="hibernate.connection.password">123456</property>   <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>   <property name="hibernate.connection.username">scott</property>   <!-- 方言 -->   <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>   <!-- 输出打印sql语句 -->   <property name="hibernate.show_sql">true</property>   <!-- 配置session的获取方式 currentSession-->   <property name="hibernate.current_session_context_class">thread</property>   <!--     <property name="hibernate.use_sql_comments">true</property>  sql语句格式化输出 -->   <property name="hibernate.format_sql">true</property>   <!-- 是否创建表 没有表-->

      <property name="hibernate.hbm2ddl.auto">update</property>

       <!-- 是否启用耳机缓存 -->   <property name="hibernate.cache.use_second_level_cache">true</property>  <!--  设置实现二级缓存的实现类 -->   <property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>     <!-- 注册实体的映射文件 -->   <mapping resource="com/hu/po/HibernateUser.hbm.xml"/>  <!--  设置启用二级缓存的实现类的只读(查询)缓存 -->

      <class-cache usage="read-only" class="com.hu.po.HibernateUser"/>

     </session-factory>

    </hibernate-configuration>

    ehcache.xml文件  项目路径

    <ehcache>       <diskStore path="./target/tmp"/> <-- 这些数据是通过压力测试  负荷是运行负荷的一倍时测得的值-->     <defaultCache             maxElementsInMemory="10000"               eternal="false"             timeToIdleSeconds="120"             timeToLiveSeconds="120"             overflowToDisk="true"             maxElementsOnDisk="10000000"             diskPersistent="false"             diskExpiryThreadIntervalSeconds="120"             memoryStoreEvictionPolicy="LRU"             />                          <!-- maxElementsInMemory  Cache中最多允许保存的数据对象的数量 -->               <!-- external=“false” //缓存中对象是否为永久的,如果是,超时设置将被忽略,对象从不过期 -->               <!-- timeToIdleSeconds=“1000”  //缓存数据钝化时间(设置对象在它过期之前的空闲时间)   -->               <!-- timeToLiveSeconds=“1000” 缓存数据的生存时间(设置对象在它过期之前的生存时间)-->               <!-- overflowToDisk=“false” />    //内存不足时,是否启用磁盘缓存   -->               <!-- memoryStoreEvictionPolicy="LRU" //内存不足时数据对象的清除策略                   ehcache中缓存的3种清空策略:                  FIFO(first in first out):先进先出                  LFU( Less Frequently Used):一直以来最少被使用的。如上面所讲,缓存的元素有一个hit属性,                                              hit值最小的将会被清出缓存。                  LRU(Least Recently Used):最近最少使用的,缓存的元素有一个时间戳,当缓存容量满了 ,                                              而又需要腾出地方来缓存新的元素的时候,那么现有缓存元素中                                              时间戳离当前时间最远的元素将被清出缓存。              --> </ehcache>

    文件路径

    所需jar包

    转载请注明原文地址: https://ju.6miu.com/read-40071.html

    最新回复(0)