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;
}
好了到此配置完毕,但是更加详细缓存配置策略需要研究(例如:当update数据时候,不全部清掉缓存,就可以达到与数据库同步效果)
转载完毕,尚未测试
分享到:
相关推荐
org.springframework.aop-3.0.5.RELEASE.jar org.springframework.asm-3.0.5.RELEASE.jar org.springframework.aspects-3.0.5.RELEASE.jar org.springframework.beans-3.0.5.RELEASE.jar org.springframework....
spring-framework-3.0.5.RELEASE-dependencies.zip
1. **org.springframework.context-3.0.5.RELEASE.jar**: 这个jar包是Spring框架的核心模块之一,它提供了应用上下文(ApplicationContext)的支持,这是Spring中管理和装配bean的主要接口。ApplicationContext...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。在本压缩包 "springMVC3.0.5常用的所有jar包.zip" 中,包含了一...
org.springframework.aop-3.0.5.RELEASE.jar,org.springframework.asm-3.0.5.RELEASE.jar,org.springframework.aspects-3.0.5.RELEASE.jar,org.springframework.beans-3.0.5.RELEASE.jar,org.springframework....
通过XML配置或注解的方式,开发者可以控制bean的生命周期,例如设置初始化方法、销毁方法,或者声明bean的范围(单例、原型等)。 四、依赖注入 依赖注入是Spring的核心特性,ApplicationContext通过读取配置文件...
rpm -Uvh vsftpd-3.0.5-1.el8.x86_64.rpm 3)然后修改vsftpd.conf文件: sed -i 's|anonymous_enable=YES|anonymous_enable=NO|g' /etc/vsftpd/vsftpd.conf sed -i 's|listen=NO|listen=YES|g' /etc/vsftpd/vsftpd....
容器根据XML或注解配置加载并管理Bean。 3. **AOP(Aspect-Oriented Programming,面向切面编程)**:Spring提供了AOP支持,允许开发者定义横切关注点(cross-cutting concerns),如日志、事务管理等,将它们与...
《深入解析Spring ASM库:org.springframework.asm-3.0.5.RELEASE.jar》 Spring框架是Java开发领域中不可或缺的一部分,而org.springframework.asm-3.0.5.RELEASE.jar是Spring框架中的一个关键组件,主要涉及到字节...
在本示例中,我们探讨的是使用Spring 3.0.5版本的MVC框架以及Hibernate 3.6.10版本的集成,构建一个基于注解的注册登录应用。这个压缩包文件“springMVC_demo01”包含了实现这个功能的所有必要组件和配置。 首先,...
spring-framework-3.0.5.RELEASE-dependencies 好不容易找到了,赶紧分享一下 因为不能大于20M,共分了8个包,都是独立的,我列了目录,可以只下载需要的包,这是1号包: 1号包: edu.emory.mathcs.backport edu.oswego.cs....
其次,Spring MVC的配置:在Spring 3.0.5中,我们通常会有一个`web.xml`文件作为部署描述符,用于配置DispatcherServlet,它是Spring MVC的前端控制器。此外,还需要一个或多个Spring配置文件(如`app-config.xml`)...
centos el7上的vsftpd v3.0.5版本的rpm安装包 1)如果运行了vsftpd,则先停止: systemctl stop vsftpd 2)安装或升级vsftpd: rpm -Uvh vsftpd-3.0.5-1.el7.x86_64.rpm rpm -Uvh vsftpd-sysvinit-3.0.5-1.el7.x86_...
org.springframework.web-3.0.5.RELEASE.jar
- `org.springframework.web.struts-3.0.5.RELEASE.jar`:此包提供了与Apache Struts框架的集成,使得基于Struts的应用程序可以利用Spring MVC的功能。 - `org.springframework.web.servlet-3.0.5.RELEASE.jar`:...
在"spring-batch-3.0.5.RELEASE-dist.zip"这个压缩包里,包含了Spring Batch框架的核心组件和相关文档,允许开发者快速地集成和配置批处理作业。以下是一些关键的知识点: 1. **核心概念**: - **Job**:Spring ...
绝对原版的spring-framework-3.0.5.RELEASE-dependencies,我找很久才找到,所以分享给有需要的人,总大小132MB,权限不够只能每次上传50M,所以,分三次上传
spring3.0.5的全部20个jar文件,常用的如下:org.springframework.asm-3.0.5.RELEASE.jar org.springframework.beans-3.0.5.RELEASE.jar org.springframework.context-3.0.5.RELEASE.jar org.springframework.core-...