码迷,mamicode.com
首页 > 编程语言 > 详细

ehcache配置:使用Spring+SpringMVC+Mybatis或者有shiro【转】

时间:2016-10-21 17:05:52      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:dubbo+zookeeper   dubbo分布式服务   dubbo+springmvc+mybatis   redis分布式缓存   maven+springmvc   

SSM框架的搭建就不在叙述了

本文主要是讲解在SSM基础上再加上ehcache

1:首先:pom.xml需要的jar

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-ehcache</artifactId>
  <version>1.0.0</version>
 </dependency>

 <dependency>
  <groupId>org.ehcache</groupId>
  <artifactId>ehcache</artifactId>
  <version>3.0.1</version>
 </dependency>

 

2:在src/main/resources中添加ehcache.xml的配置文件,该路径跟随你的框架而定(大家都懂的)

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"="http://ehcache.org/ehcache.xsd"="false">
       <diskStore path="java.io.tmpdir" />
       <defaultCache eternal="false" maxElementsInMemory="1000"="false" diskPersistent="false" timeToIdleSeconds="0"="600" memoryStoreEvictionPolicy="LRU" />
       <cache name="testCache" eternal="false" maxElementsInMemory="100"="false" diskPersistent="false" timeToIdleSeconds="0"="300" memoryStoreEvictionPolicy="LRU" />
</ehcache>

<!-- 这里是说明
name:Cache的唯一标识 
maxElementsInMemory:内存中最大缓存对象数 
maxElementsOnDisk:磁盘中最大缓存对象数,若是0表示无穷大 
eternal:Element是否永久有效,一但设置了,timeout将不起作用 
overflowToDisk:配置此属性,当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中 
timeToIdleSeconds:设置Element在失效前的允许闲置时间。仅当element不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大 
timeToLiveSeconds:设置Element在失效前允许存活时间。最大时间介于创建时间和失效时间之间。仅当element不是永久有效时使用,默认是0.,也就是element存活时间无穷大 
diskPersistent:是否缓存虚拟机重启期数据 
diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒 
diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区 
memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用) -->

 

3:在spring-mybatis.xml中假如encache的配置

<!-- 使用ehcache缓存 -->
    <bean id="ehCacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
        <property name="configLocation" value="classpath:ehcache.xml" />
    </bean

--------重点来了---------

假如你的框架里面集成了shiro,这里就需要变下了,具体配置如下

<!-- MyBatis使用ehcache缓存 start -->  
    <bean id="ehCacheManager"  
        ="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">  
        <property name="configLocation" value="classpath:ehcache.xml" />  
        <property name="shared" value="true"></property> <!-- 这里是关键!!!没有必错  -->  
    </bean>  
    <!-- end MyBatis使用ehcache缓存 -->  

    <!-- 缓存管理器 使用Ehcache实现 -->  
    <bean id="shiroCacheManager" ="org.apache.shiro.cache.ehcache.EhCacheManager">  
        <property name="cacheManager" ref="ehCacheManager" />  
    </bean>

 

4:最后在你的mapper.xml中配置encache,加入以下配置

<cache type="org.mybatis.caches.ehcache.LoggingEhcache" >  
      <property name="timeToIdleSeconds" value="3600"/>
      <property name="timeToLiveSeconds" value="3600"/>
      <property name="maxEntriesLocalHeap" value="1000"/>  
      <property name="maxEntriesLocalDisk" value="10000000"/>  
      <property name="memoryStoreEvictionPolicy" value="LRU"/>  
  </cache>

 

这里说明下,LoggingEhcache  这个会在打印log,如果不像要log的话可以使用EhcacheCache 

最后说明下,按照我这样配置的话,这个mapper.xml里面的操作是全局,默认为useCache="true"  都会有作用,

假如某个业务是不要缓存的,可以在当前业务下加上useCache="false"

<select id="selectByName" resultMap="BaseResultMap" parameterType="java.lang.String" useCache="false">

 框架/平台构成:

Maven+Springmvc + Mybatis + Shiro(权限)+ Tiles(模板) +ActiveMQ(消息队列) + Rest(服务) + WebService(服务)+ EHcache(缓存) + Quartz(定时调度)+ Html5(支持PC、IOS、Android)

用户权限系统:
组织结构:角色、用户、用户组、组织机构;权限点:页面、方法、按钮、数据权限、分级授权

项目管理新体验
快速出原型系统、组件树、版本控制、模块移植、协同开发、实时监控、发布管理

可持续集成:
所有组件可移植、可定制、可扩充,开发成果不断积累,形成可持续发展的良性循环

支持平台平台: 
Windows XP、Windows 7 、Windows 10 、 Linux 、 Unix

服务器容器:
Tomcat 5/6/7 、Jetty、JBoss、WebSphere 8.5 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享


ehcache配置:使用Spring+SpringMVC+Mybatis或者有shiro【转】

标签:dubbo+zookeeper   dubbo分布式服务   dubbo+springmvc+mybatis   redis分布式缓存   maven+springmvc   

原文地址:http://12070981.blog.51cto.com/12060981/1864172

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!