maven工程中hibernate的二级缓存ehcache的配置

来源:互联网 发布:淘宝基础版全屏装修 编辑:程序博客网 时间:2024/06/11 02:14
      说到缓存对于新手来说可能是一件很头疼的事儿,做为新手的我,今天给大家分享下自己的学习过程。最近项目中用到了可配置参数,这类参数基本无需修改,除了新增,刚开始是自己写了一个mapCache,就是用ConcurrentHashMap在系统启动时将所有数据缓存到map中,这样避免了系统运行时频繁访问数据库查询。但是这里有个缺点,如果系统启动后在管理平台新增参数那么新增的参数不会在map中,业务系统必须重启重新加载参数。所以这个方法不能满足系统的需求。之后又想到了定时器,Spring中自带的定时功能,定时没隔5分钟查询数据库并更新Map中的配置参数,这个方法确实可以解决问题,但是增加的系统的负担。最后想到了hibernate的二级缓存,这个缓存一直没有用过,工作快两年了,真对不起自己的职业,决定研究下。切入主题:
     1.首先说下hibernate的配置,如下
    <prop key="hibernate.cache.use_query_cache">true</prop>     是否开启查询缓存,此处true表示开启
    <prop key="hibernate.cache.use_second_level_cache">true</prop> 是否开启二级缓存,true表示开启
    <prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</prop>
    <!-- Hibernate4.0以上设置factory  -->
    <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory
    </prop>
    <!-- 二级缓存 ehcache的配置文件路径  -->
    <prop key="hibernate.cache.provider_configuration_file_resource_path">classpath:ehcache-hibernate.xml</prop>
2.ehcache-hibernate.xml 的配置,如下,文件中写的已经很清楚,不在做说明
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">
 <!--磁盘缓存位置: 指定一个文件目录,当EhCache把数据写到硬盘上时,将把数据写到这个文件目录下 -->
 <diskStore path="java.io.tmpdir/ehcache" />
 <!-- 默认的管理策略 maxElementsOnDisk: 在磁盘上缓存的element的最大数目,默认值为0,表示不限制。 eternal:设定缓存的elements是否永远不过期。
  如果为true,则缓存的数据始终有效,如果为false那么还要根据timeToIdleSeconds判断:当缓存闲置n秒后销毁; timeToLiveSeconds判断:当缓存存活n秒后销毁;
  overflowToDisk:是否保存到磁盘,当系统当机时; diskPersistent: 是否在磁盘上持久化。指重启jvm后,数据是否有效。默认为false。
  diskExpiryThreadIntervalSeconds:对象检测线程运行时间间隔。 标识对象状态(过期/持久化)的线程多长时间运行一次。 -->
 <!-- memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。可选策略有:LRU(最近最少使用,默认策略)、FIFO(先进先出)、LFU(最少访问次数)。 -->
 <defaultCache
     maxElementsInMemory="10000"
     eternal="false"
  timeToIdleSeconds="3600"
  timeToLiveSeconds="3600"
  overflowToDisk="true"
  diskPersistent="false"
  diskExpiryThreadIntervalSeconds="120"
  memoryStoreEvictionPolicy="LRU">
 </defaultCache>
 
  <!--想使用查询缓存,这两个类需要添加-->
    <cache
        name="org.hibernate.cache.spi.UpdateTimestampsCache"
        maxElementsInMemory="5000"
        eternal="true"
        overflowToDisk="true">
    </cache>
     <cache
      name="org.hibernate.cache.internal.StandardQueryCache"
      maxElementsInMemory="10000"
      eternal="false"
      timeToLiveSeconds="120"
      overflowToDisk="true">
     </cache>
 <!-- Special objects setting. -->
 <cache
     name="com.cosw.entity.huaian.PayRates"
     maxElementsInMemory="20"
  eternal="false"
  diskPersistent="false"
  overflowToDisk="false"
  timeToIdleSeconds="600"
  timeToLiveSeconds="600"
  maxElementsOnDisk="1000000"
  memoryStoreEvictionPolicy="LRU" >
 </cache>
 
 <cache
     name="com.cosw.entity.huaian.SysParam"
     maxElementsInMemory="20"
  eternal="false"
  diskPersistent="false"
  overflowToDisk="false"
  timeToIdleSeconds="600"
  timeToLiveSeconds="600"
  maxElementsOnDisk="1000000"
  memoryStoreEvictionPolicy="LRU" >
 </cache>
</ehcache>
3.在log4j中配置log4j.logger.org.hibernate=debug;方便测试时打印出hibernate的日志查看,下面会做说明
4.在Hibernate查询中设置缓存查询,如下
/**
  * 设置ehcache查询缓存:setCacheable(true);
  */
 public List<T> findAllEhcache() {
  return createCriteria().setCacheable(true).list();
 }
5.测试类如下:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import org.apache.log4j.Logger;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.cosw.entity.huaian.SysParam;
import com.cosw.service.huaian.SysParamService;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:applicationContext-base.xml",
  "classpath:applicationContext-hibernate.xml", "classpath:ehcache-hibernate.xml" })
public class EhcacheTest {
 private static final Logger LOGGER = Logger.getLogger(EhcacheTest.class);
 SimpleDateFormat fromat_YMDHMS = new SimpleDateFormat("yyyyMMddHHmmss");
 @Autowired
 private SysParamService sysParamService;
 @Test
 public void ehcacheSave() throws InterruptedException {
  SysParam sysParam = new SysParam();
  sysParam.setId(System.currentTimeMillis());
  sysParam.setSysCode(fromat_YMDHMS.format(new Date()));
  sysParam.setSysName("单日最大交易限额");
  sysParam.setSysValue("500");
  sysParamService.save(sysParam);
  LOGGER.info("====OBJECT====" + sysParam.getId());
  sysParamService.findAllSetEhcache();
  Thread.sleep(5000);
  for (int i = 0; i < 2; i++) {
   List<SysParam> list = sysParamService.findAllSetEhcache();
   LOGGER.info("====OBJECT====" + i + "====" + list);
  }
 }
}
6.以下为测试类的hibernate的打印日志,并作分析
2017-06-05 21:32:54 45125 <DEBUG> Obtaining JDBC connection <org.hibernate.engine.jdbc.internal.LogicalConnectionImpl:org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:226)(main)>
2017-06-05 21:32:54 45128 <DEBUG> Obtained JDBC connection <org.hibernate.engine.jdbc.internal.LogicalConnectionImpl:org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:232)(main)>
2017-06-05 21:32:54 45132 <DEBUG> begin <org.hibernate.engine.transaction.spi.AbstractTransactionImpl:org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:160)(main)>
2017-06-05 21:32:54 45133 <DEBUG> initial autocommit status: true <org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction:org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:69)(main)>
2017-06-05 21:32:54 45134 <DEBUG> disabling autocommit <org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction:org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:71)(main)>
2017-06-05 21:32:54 45213 <DEBUG> Checking cached query results in region: org.hibernate.cache.internal.StandardQueryCache <org.hibernate.cache.internal.StandardQueryCache:org.hibernate.cache.internal.StandardQueryCache.get(StandardQueryCache.java:166)(main)>
// 开始第一次查询
2017-06-05 21:32:54 45215 <DEBUG> key: sql: select this_.id as id1_7_0_, this_.sys_code as sys_code2_7_0_, this_.sys_name as sys_name3_7_0_, this_.sys_value as sys_valu4_7_0_ from huaian_sys_param this_; parameters: ; transformer: org.hibernate.transform.CacheableResultTransformer@110f2 <org.hibernate.cache.ehcache.internal.regions.EhcacheGeneralDataRegion:org.hibernate.cache.ehcache.internal.regions.EhcacheGeneralDataRegion.get(EhcacheGeneralDataRegion.java:74)(main)>
2017-06-05 21:32:54 45219 <DEBUG> Element for key sql: select this_.id as id1_7_0_, this_.sys_code as sys_code2_7_0_, this_.sys_name as sys_name3_7_0_, this_.sys_value as sys_valu4_7_0_ from huaian_sys_param this_; parameters: ; transformer: org.hibernate.transform.CacheableResultTransformer@110f2 is null <org.hibernate.cache.ehcache.internal.regions.EhcacheGeneralDataRegion:org.hibernate.cache.ehcache.internal.regions.EhcacheGeneralDataRegion.get(EhcacheGeneralDataRegion.java:81)(main)>
// 首先去cache中查找,查找结果为 not found
2017-06-05 21:32:54 45220 <DEBUG> Query results were not found in cache <org.hibernate.cache.internal.StandardQueryCache:org.hibernate.cache.internal.StandardQueryCache.get(StandardQueryCache.java:174)(main)>
2017-06-05 21:32:54 45235 <DEBUG>
    select
        this_.id as id1_7_0_,
        this_.sys_code as sys_code2_7_0_,
        this_.sys_name as sys_name3_7_0_,
        this_.sys_value as sys_valu4_7_0_
    from
        huaian_sys_param this_ <org.hibernate.SQL:org.hibernate.engine.jdbc.spi.SqlStatementLogger.logStatement(SqlStatementLogger.java:109)(main)>
2017-06-05 21:32:54 45242 <DEBUG> Result set row: 0 <org.hibernate.loader.Loader:org.hibernate.loader.Loader.processResultSet(Loader.java:952)(main)>
2017-06-05 21:32:54 45249 <DEBUG> Result row: EntityKey[com.cosw.entity.huaian.SysParam#1] <org.hibernate.loader.Loader:org.hibernate.loader.Loader.getRow(Loader.java:1486)(main)>
2017-06-05 21:32:54 45259 <DEBUG> Result set row: 1 <org.hibernate.loader.Loader:org.hibernate.loader.Loader.processResultSet(Loader.java:952)(main)>
2017-06-05 21:32:54 45260 <DEBUG> Result row: EntityKey[com.cosw.entity.huaian.SysParam#2] <org.hibernate.loader.Loader:org.hibernate.loader.Loader.getRow(Loader.java:1486)(main)>
2017-06-05 21:32:54 45261 <DEBUG> Result set row: 2 <org.hibernate.loader.Loader:org.hibernate.loader.Loader.processResultSet(Loader.java:952)(main)>
2017-06-05 21:32:54 45261 <DEBUG> Result row: EntityKey[com.cosw.entity.huaian.SysParam#17] <org.hibernate.loader.Loader:org.hibernate.loader.Loader.getRow(Loader.java:1486)(main)>
2017-06-05 21:32:54 45266 <DEBUG> Resolving associations for [com.cosw.entity.huaian.SysParam#1] <org.hibernate.engine.internal.TwoPhaseLoad:org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:160)(main)>
// 插叙出三条记录,通过Adding entity  to second-level cache 放入缓存中
2017-06-05 21:32:54 45267 <DEBUG> Adding entity to second-level cache: [com.cosw.entity.huaian.SysParam#1] <org.hibernate.engine.internal.TwoPhaseLoad:org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:194)(main)>
2017-06-05 21:32:54 45281 <DEBUG> Done materializing entity [com.cosw.entity.huaian.SysParam#1] <org.hibernate.engine.internal.TwoPhaseLoad:org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:286)(main)>
2017-06-05 21:32:54 45282 <DEBUG> Resolving associations for [com.cosw.entity.huaian.SysParam#2] <org.hibernate.engine.internal.TwoPhaseLoad:org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:160)(main)>
2017-06-05 21:32:54 45283 <DEBUG> Adding entity to second-level cache: [com.cosw.entity.huaian.SysParam#2] <org.hibernate.engine.internal.TwoPhaseLoad:org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:194)(main)>
2017-06-05 21:32:54 45285 <DEBUG> Done materializing entity [com.cosw.entity.huaian.SysParam#2] <org.hibernate.engine.internal.TwoPhaseLoad:org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:286)(main)>
2017-06-05 21:32:54 45286 <DEBUG> Resolving associations for [com.cosw.entity.huaian.SysParam#17] <org.hibernate.engine.internal.TwoPhaseLoad:org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:160)(main)>
2017-06-05 21:32:54 45287 <DEBUG> Adding entity to second-level cache: [com.cosw.entity.huaian.SysParam#17] <org.hibernate.engine.internal.TwoPhaseLoad:org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:194)(main)>
2017-06-05 21:32:54 45289 <DEBUG> Done materializing entity [com.cosw.entity.huaian.SysParam#17] <org.hibernate.engine.internal.TwoPhaseLoad:org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:286)(main)>
2017-06-05 21:32:54 45292 <DEBUG> HHH000117: HQL: [CRITERIA] select this_.id as id1_7_0_, this_.sys_code as sys_code2_7_0_, this_.sys_name as sys_name3_7_0_, this_.sys_value as sys_valu4_7_0_ from huaian_sys_param this_, time: 64ms, rows: 3 <org.hibernate.stat.internal.ConcurrentStatisticsImpl:org.hibernate.stat.internal.ConcurrentStatisticsImpl.queryExecuted(ConcurrentStatisticsImpl.java:412)(main)>
2017-06-05 21:32:54 45293 <DEBUG> Caching query results in region: org.hibernate.cache.internal.StandardQueryCache; timestamp=6130358578888704 <org.hibernate.cache.internal.StandardQueryCache:org.hibernate.cache.internal.StandardQueryCache.put(StandardQueryCache.java:130)(main)>
// 需要说名的是,缓存中的存放形式是key-value,key为查询的sql 语句
2017-06-05 21:32:54 45294 <DEBUG> key: sql: select this_.id as id1_7_0_, this_.sys_code as sys_code2_7_0_, this_.sys_name as sys_name3_7_0_, this_.sys_value as sys_valu4_7_0_ from huaian_sys_param this_; parameters: ; transformer: org.hibernate.transform.CacheableResultTransformer@110f2 value: [6130358578888704, 1, 2, 17] <org.hibernate.cache.ehcache.internal.regions.EhcacheGeneralDataRegion:org.hibernate.cache.ehcache.internal.regions.EhcacheGeneralDataRegion.put(EhcacheGeneralDataRegion.java:103)(main)>
2017-06-05 21:32:54 45296 <DEBUG> committing <org.hibernate.engine.transaction.spi.AbstractTransactionImpl:org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175)(main)>
2017-06-05 21:32:54 45297 <DEBUG> committed JDBC Connection <org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction:org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doCommit(JdbcTransaction.java:113)(main)>
2017-06-05 21:32:54 45298 <DEBUG> re-enabling autocommit <org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction:org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.releaseManagedConnection(JdbcTransaction.java:126)(main)>
2017-06-05 21:32:54 45303 <INFO > Session Metrics {
    2386920 nanoseconds spent acquiring 1 JDBC connections;
    0 nanoseconds spent releasing 0 JDBC connections;
    927015 nanoseconds spent preparing 1 JDBC statements;
    1851156 nanoseconds spent executing 1 JDBC statements;
    0 nanoseconds spent executing 0 JDBC batches;
    10317456 nanoseconds spent performing 4 L2C puts;
    0 nanoseconds spent performing 0 L2C hits;
    5462738 nanoseconds spent performing 1 L2C misses;
    0 nanoseconds spent executing 0 flushes (flushing a total of 0 entities and 0 collections);
    67741 nanoseconds spent executing 1 partial-flushes (flushing a total of 0 entities and 0 collections)
} <org.hibernate.engine.internal.StatisticalLoggingSessionEventListener:org.hibernate.engine.internal.StatisticalLoggingSessionEventListener.end(StatisticalLoggingSessionEventListener.java:275)(main)>
2017-06-05 21:32:54 45304 <DEBUG> Releasing JDBC connection <org.hibernate.engine.jdbc.internal.LogicalConnectionImpl:org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.releaseConnection(LogicalConnectionImpl.java:246)(main)>
2017-06-05 21:32:54 45307 <DEBUG> Released JDBC connection <org.hibernate.engine.jdbc.internal.LogicalConnectionImpl:org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.releaseConnection(LogicalConnectionImpl.java:264)(main)>
2017-06-05 21:32:59 50308 <DEBUG> Obtaining JDBC connection <org.hibernate.engine.jdbc.internal.LogicalConnectionImpl:org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:226)(main)>
2017-06-05 21:32:59 50311 <DEBUG> Obtained JDBC connection <org.hibernate.engine.jdbc.internal.LogicalConnectionImpl:org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:232)(main)>
2017-06-05 21:32:59 50313 <DEBUG> begin <org.hibernate.engine.transaction.spi.AbstractTransactionImpl:org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:160)(main)>
2017-06-05 21:32:59 50313 <DEBUG> initial autocommit status: true <org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction:org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:69)(main)>
2017-06-05 21:32:59 50314 <DEBUG> disabling autocommit <org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction:org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:71)(main)>
2017-06-05 21:32:59 50316 <DEBUG> Checking cached query results in region: org.hibernate.cache.internal.StandardQueryCache <org.hibernate.cache.internal.StandardQueryCache:org.hibernate.cache.internal.StandardQueryCache.get(StandardQueryCache.java:166)(main)>
2017-06-05 21:32:59 50316 <DEBUG> key: sql: select this_.id as id1_7_0_, this_.sys_code as sys_code2_7_0_, this_.sys_name as sys_name3_7_0_, this_.sys_value as sys_valu4_7_0_ from huaian_sys_param this_; parameters: ; transformer: org.hibernate.transform.CacheableResultTransformer@110f2 <org.hibernate.cache.ehcache.internal.regions.EhcacheGeneralDataRegion:org.hibernate.cache.ehcache.internal.regions.EhcacheGeneralDataRegion.get(EhcacheGeneralDataRegion.java:74)(main)>
2017-06-05 21:32:59 50317 <DEBUG> Checking query spaces are up-to-date: [huaian_sys_param] <org.hibernate.cache.internal.StandardQueryCache:org.hibernate.cache.internal.StandardQueryCache.isUpToDate(StandardQueryCache.java:248)(main)>
2017-06-05 21:32:59 50318 <DEBUG> key: huaian_sys_param <org.hibernate.cache.ehcache.internal.regions.EhcacheGeneralDataRegion:org.hibernate.cache.ehcache.internal.regions.EhcacheGeneralDataRegion.get(EhcacheGeneralDataRegion.java:74)(main)>
2017-06-05 21:32:59 50318 <DEBUG> [huaian_sys_param] last update timestamp: 6130358577954816, result set timestamp: 6130358578888704 <org.hibernate.cache.spi.UpdateTimestampsCache:org.hibernate.cache.spi.UpdateTimestampsCache.isUpToDate(UpdateTimestampsCache.java:187)(main)>
// 返回缓存中的结果,此时并没有像第一次一样执行select的sql 语句,直接从缓存返回结果
2017-06-05 21:32:59 50319 <DEBUG> Returning cached query results <org.hibernate.cache.internal.StandardQueryCache:org.hibernate.cache.internal.StandardQueryCache.get(StandardQueryCache.java:188)(main)>
2017-06-05 21:32:59 50329 <DEBUG> committing <org.hibernate.engine.transaction.spi.AbstractTransactionImpl:org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175)(main)>
2017-06-05 21:32:59 50330 <DEBUG> committed JDBC Connection <org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction:org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doCommit(JdbcTransaction.java:113)(main)>
2017-06-05 21:32:59 50330 <DEBUG> re-enabling autocommit <org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction:org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.releaseManagedConnection(JdbcTransaction.java:126)(main)>
2017-06-05 21:32:59 50334 <INFO > Session Metrics {
    2761749 nanoseconds spent acquiring 1 JDBC connections;
    0 nanoseconds spent releasing 0 JDBC connections;
    0 nanoseconds spent preparing 0 JDBC statements;
    0 nanoseconds spent executing 0 JDBC statements;
    0 nanoseconds spent executing 0 JDBC batches;
    0 nanoseconds spent performing 0 L2C puts;
    2794593 nanoseconds spent performing 5 L2C hits;
    0 nanoseconds spent performing 0 L2C misses;
    0 nanoseconds spent executing 0 flushes (flushing a total of 0 entities and 0 collections);
    10264 nanoseconds spent executing 1 partial-flushes (flushing a total of 0 entities and 0 collections)
} <org.hibernate.engine.internal.StatisticalLoggingSessionEventListener:org.hibernate.engine.internal.StatisticalLoggingSessionEventListener.end(StatisticalLoggingSessionEventListener.java:275)(main)>
2017-06-05 21:32:59 50334 <DEBUG> Releasing JDBC connection <org.hibernate.engine.jdbc.internal.LogicalConnectionImpl:org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.releaseConnection(LogicalConnectionImpl.java:246)(main)>
2017-06-05 21:32:59 50337 <DEBUG> Released JDBC connection <org.hibernate.engine.jdbc.internal.LogicalConnectionImpl:org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.releaseConnection(LogicalConnectionImpl.java:264)(main)>
2017-06-05 21:33:00 50374 <INFO > ====OBJECT====0====[com.cosw.entity.huaian.SysParam@4e763e0c[
  sysName=单日最大交易限额
  sysCode=20170605133623
  sysValue=500
  id=1
], com.cosw.entity.huaian.SysParam@34e3ae12[
  sysName=单日最大交易限额
  sysCode=20170605134605
  sysValue=500
  id=2
], com.cosw.entity.huaian.SysParam@4fb93ade[
  sysName=单日最大交易限额
  sysCode=20170605213253
  sysValue=500
  id=17
]] <com.cosw.cache.EhcacheTest:com.cosw.cache.EhcacheTest.ehcacheSave(EhcacheTest.java:42)(main)>
原创粉丝点击