Ehcache3.4 XML配置硬盘存储


  最近开始学习使用Ehcache, 3.4的文档实在过于简单,尤其是对于XML配置,例子太少。相对于硬编码,我更偏爱灵活的XML配置,为了实现xml配置,摸索了两天,终于运行成功。

ehcache.xml文件:

<config
    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
    xmlns='http://www.ehcache.org/v3'
    xsi:schemaLocation="http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core.xsd">
  <persistence directory="d:\\mycache"/>
  
  <cache alias="foo">   
    <key-type>java.lang.String</key-type> 
    <value-type>java.lang.String</value-type> 
    <heap unit="entries">200</heap>
    
  </cache>

  <cache-template name="securityObjTemplate"> 
    <key-type>java.lang.String</key-type>
    <value-type>java.lang.String</value-type>   
    <resources>
      <heap unit="entries">2000</heap> 
      <offheap unit="MB">500</offheap>       
      <disk persistent="true" unit="MB">1000</disk>
    </resources>
  </cache-template>
  <!-- 缓存行情数据 -->
  <cache alias="hq_quote11" uses-template="securityObjTemplate">   
       <key-type>java.lang.String</key-type>
    <value-type>java.lang.String</value-type>
  </cache>
  
  <cache alias="last_hq_quote" uses-template="securityObjTemplate">   
  </cache>

</config>

java代码如下:

CacheConfigurationBuilder<String, String> securityConfigBuilder = 
                    xmlConfiguration.newCacheConfigurationBuilderFromTemplate("securityObjTemplate", String.class, String.class); 
            CacheManagerBuilder<CacheManager> cmb = CacheManagerBuilder.newCacheManagerBuilder();
            for(ServiceCreationConfiguration<?> scc:  xmlConfiguration.getServiceCreationConfigurations()) {        
                if(scc instanceof CacheManagerConfiguration) {
                    cmb = cmb.with((CacheManagerConfiguration)scc);
                }
            }
        CacheManager securityCacheManager = cmb.build(true);

Cache cache = securityCacheManager.createCache(key, securityConfigBuilder);

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM