Spring 3.0.5的,更细颗粒化的缓存设置,更方便的注解,可以具体到把每个方式的返回值做缓存,
需要 ehcache-spring-annotations-1.1.x,附件已提供
首先,applicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:ehcache="http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring
http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring-1.1.xsd">
<ehcache:annotation-driven cache-manager="ehCacheManager" />
<bean id="ehCacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:ehcache.xml" />
</bean>
其次,src下的ehcache.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"
updateCheck="false">
<diskStore path="java.io.tmpdir" />
<defaultCache eternal="false"
maxElementsInMemory="1000"
overflowToDisk="false"
diskPersistent="false"
timeToIdleSeconds="0"
timeToLiveSeconds="600"
memoryStoreEvictionPolicy="LRU" />
<cache name="departCache"
eternal="false"
maxElementsInMemory="100"
overflowToDisk="false"
diskPersistent="false"
timeToIdleSeconds="0"
timeToLiveSeconds="300"
memoryStoreEvictionPolicy="LRU" />
</ehcache>
DAO层缓存:例如下边这个方法的返回值需要缓存:
@SuppressWarnings("unchecked")
//spring 3 基于注解ehcache缓存配置;
@Cacheable(cacheName="departCache")
public List<AppDepart> getChildDepart(Integer id) throws Exception {
return this.getHibernateTemplate().find("from AppDepart where state=1 and idParent="+id);
}
@Cacheable(cacheName="departCache") 加上这句话,其中cacheName 对应ehcache.xml 中的<cache name="departCache"
这样这个方法返回值就可以被缓存起来的了,但是怎么样把缓存数据和数据库中的数据实现同步呢?
如果对这个PO做update ,save,delete 可以实现这样策略如下:
@Transactional(propagation = Propagation.REQUIRED)
//设定spring的ecache缓存策略,当编辑机构时候,把缓存全部清除掉,以达到缓存那数据同步;
@TriggersRemove(cacheName="departCache",removeAll=true)
public boolean editDepart(String depno, String depName) {
boolean flag = false;
try {
AppDepart depart = departDao.getAppdepart(depno);
depart.setDepName(depName);
departDao.update(depart);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
分享到:
相关推荐
ehcache 专业教程 ehcache 专业教程 ehcache 专业教程 ehcache 专业教程 ehcache 专业教程
Ehcache经典中文教程Ehcache内存框架介绍 —高成勇 安装 配置 编码接口介绍 api
Ehcache经典教程实例应用-原创Ehcache经典教程实例应用-原创Ehcache经典教程实例应用-原创
Ehcache中文指南和实例教程 好东西来的, 入门必备
ehcache3-samples, 关于使用 Ehcache 3,一些示例/教程 Ehcache示例这里知识库包含有关 Ehcache 3用法的示例和教程。示例'basic'演示 Ehcache 3的基本配置和用法'集群'- 演示如何在Terracotta服务器上使用分布式缓存...
ehcache缓存教程 ehcache j2ee java spring struts
Ehcache中文指南和实例教程
一本不可多得的好书。 官方网站上的指引文档,入门必备。
EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认的 CacheProvider。这篇文章主要介绍了SpringBoot中使用Ehcache的相关知识,需要的朋友可以参考下
当有数据更新的时候,每个进程中的缓存都是独立维护的,如果这些进程缓存同步机制,那么就存在因缓存没有...所以,本文就来说说当使用EhCache的时候,如果来组建进程内缓存EnCache的集群以及配置配置他们的同步策略。
sping整合ehcache实现二级缓存,从根本上了解spring缓存机制,自己实现不用愁
最新版本的EhcacheUserGuide-1.7.1.pdf
3分钟学会ehcache,适合初学者,属于自己总结,描述可能不准确。
计算机后端-Java-java高手加薪课视频教程20 shiro授权时缓存产品ehcache.mp4
简单的用户注册,登入验证DEMO,使用springmvc+jpa+theamleaf+Ehcache
主要介绍了mybatis教程之查询缓存(一级缓存二级缓存和整合ehcache),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
spring-boot-demo19 Spring Boot基础教程 之 使用Caching-EhCache
SpringBoot2.0 + NoSQL使用教程,项目名称:“ SpringBoot2NoSQL” 项目介绍 一站式SpringBoot for NoSQL开发教程学习手册。 含SpringBoot2.0 +: 雷迪斯 高速缓存 MongoDB 弹性搜索 卡桑德拉 CouchBase 索尔 ...
第二步:拷贝ehcache.xml文件到类路径下(位于Hibernate3的etc文件夹下) 第三步:对需要进行缓存的持久化对象进行配置. 第四步:编写测试类,体验Hibernate的二级缓存. 第五步:二级...
之前我们介绍了两种进程内缓存的用法,包括Spring Boot默认使用的ConcurrentMap缓存以及缓存框架EhCache。虽然EhCache已经能够适用很多应用场景,但是由于EhCache是进程内的缓存框架,在集群模式下时,各应用服务器...