配置二级缓存的文件 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"/>
</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包