`
cuisuqiang
  • 浏览: 3962713 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
3feb66c0-2fb6-35ff-968a-5f5ec10ada43
Java研发技术指南
浏览量:3672088
社区版块
存档分类
最新评论

Spring 使用注解配置使用ehcache

    博客分类:
  • SSH
阅读更多

使用ehcache-spring-annotations使得在工程中简单配置即可使用缓存
下载地址:http://code.google.com/p/ehcache-spring-annotations/

 

需要的jar包,首先需要的是我们之前做SpringMVC时的各个Spring的jar包
然后需要把ehcache-spring-annotations-1.2.0文件夹内lib内的,非spring的jar加进去,因为我们已经增加了我们版本的spring
然后还需要动态代理的cglib包

 

SpringMVC的搭建就不再说了,参考
Spring MVC 入门示例 http://cuisuqiang.iteye.com/blog/2042931
Spring MVC Controller配置方式 http://cuisuqiang.iteye.com/blog/2043697

 

在spring主配置文件中配置ehcache注解的使用:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       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-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/aop 
			http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
			http://www.springframework.org/schema/tx 
			http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
			http://www.springframework.org/schema/mvc 
			http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
			http://www.springframework.org/schema/context 
			http://www.springframework.org/schema/context/spring-context-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>
	<bean id="sacheService" class="test.CacheService"></bean>
</beans>

 

配置缓存配置文件ehcache.xml,改文件放在SRC下:

<?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="testCache" eternal="false" maxElementsInMemory="100"
		overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="0"
		timeToLiveSeconds="300" memoryStoreEvictionPolicy="LRU" />
</ehcache>

 

CacheService是示例类,代码如下:

package test;
import java.util.Date;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.googlecode.ehcache.annotations.Cacheable;
import com.googlecode.ehcache.annotations.TriggersRemove;
public class CacheService{
    @SuppressWarnings("deprecation")
	@Cacheable(cacheName = "testCache")
    public String getName(String code){
    	System.out.println("查询编号:" + code);
        return new Date().toLocaleString() + "-->" + code;
    }
    @SuppressWarnings("deprecation")
    @Transactional(propagation = Propagation.REQUIRED) 
    public String update(String code){
    	System.out.println("更新编号:" + code);
    	return new Date().toLocaleString() + "-->" + code;
    }
    @TriggersRemove(cacheName="testCache",removeAll=true)
    public void flush(){
    	System.out.println("情况缓存");
        System.out.println("Processing testFlushing");
    }
}

 

改类包含根据参数获取缓存值,更新缓存,情况缓存,都是使用注解标签实现。

 

Action类需要改动一下,代码如下:

package test;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
// http://localhost:8080/spring/hello.do?key=1&code=java
@org.springframework.stereotype.Controller
public class HelloController{
	private CacheService sacheService;
	@SuppressWarnings("deprecation")
	@RequestMapping("/hello.do")
	public String hello(HttpServletRequest request,HttpServletResponse response){
		String key = request.getParameter("key");
		if("1".equals(key)){
			request.setAttribute("message", sacheService.getName(request.getParameter("code")));
		}else if("2".equals(key)){
			request.setAttribute("message", sacheService.update(request.getParameter("code")));
		}else{
			sacheService.flush();
			request.setAttribute("message", sacheService.getName(request.getParameter("code")));
		}
		return "hello";
	}
	public CacheService getSacheService() {
		return sacheService;
	}
	@Autowired
	public void setSacheService(CacheService sacheService) {
		this.sacheService = sacheService;
	}
}

 

根据key做不同的操作,然后分别访问以下几个路径,为了方便看效果和学习,我把工程代码放到了附件
第一次没有缓存
http://localhost:8080/spring/hello.do?key=1&code=java
读取缓存
http://localhost:8080/spring/hello.do?key=1&code=java
更新缓存
http://localhost:8080/spring/hello.do?key=2&code=java
读取最新缓存
http://localhost:8080/spring/hello.do?key=1&code=java
情况缓存
http://localhost:8080/spring/hello.do?key=3

 

请您到ITEYE网站看 java小强 原创,谢谢!
http://cuisuqiang.iteye.com/

自建博客地址:http://www.javacui.com/ ,内容与ITEYE同步!

1
1
分享到:
评论
3 楼 阿伦丶艾弗森 2016-07-01  
我要spring3.0以下的啊
2 楼 cuisuqiang 2014-04-22  
V_shton 写道
讲的不错,感谢分享!

有用就好,看懂就好,且学且珍惜!
1 楼 V_shton 2014-04-22  
讲的不错,感谢分享!

相关推荐

    spring整合EhCache 基于注解的方式

    本例子主要讲解ehcache的配置使用。采用了java配置和xml配置两种方式。主要用于学习。 使用java配置时将SpringTestCase.java 文件中的@ContextConfiguration(locations = { "classpath:applicationContext.xml" }) ...

    Spring + Ehcache 注解形式配置

    总结来说,通过在Spring中使用Ehcache的注解配置,我们可以轻松地实现缓存管理,提高应用性能。在实际开发中,还需要根据具体需求调整缓存策略,如设置不同的缓存区域、过期策略等,以达到最佳效果。同时,需要注意...

    spring3.2+ehcache 注解使用

    接下来,我们需要配置Ehcache。在Spring的配置文件(如`applicationContext.xml`)中添加以下内容来创建一个Ehcache管理器: ```xml &lt;bean id="cacheManager" class="org.springframework.cache.ehcache....

    Ehcache集成Spring的使用(转载)

    4. **启用缓存注解**: 使用 Spring 的 `@EnableCaching` 注解来启用缓存支持,并配置缓存管理器: ```java @Configuration @EnableCaching public class CacheConfig { @Bean public CacheManager cacheManager() ...

    spring整合EhCache 基于注解

    本例子主要讲解ehcache的配置使用。采用了java配置和xml配置两种方式。主要用于学习。 使用java配置时将SpringTestCase.java 文件中的@ContextConfiguration(locations = { "classpath:applicationContext.xml" }) ...

    Spring+Ehcache集成

    接下来,我们需要配置Ehcache。在Spring中,这通常通过XML配置文件或者Java配置类来实现。这里以XML配置为例,创建一个名为`ehcache.xml`的配置文件: ```xml &lt;ehcache xmlns:xsi=...

    Spring与ehcache结合使用

    -- Spring配置文件中配置ehcache --&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cache=...

    Spring基于注解的缓存配置--EHCache AND OSCache

    本篇文章将深入探讨如何使用注解配置Spring与EHCache或OSCache这两个流行的Java缓存解决方案。以下是对该主题的详细阐述: 1. **Spring缓存抽象** Spring 3.1引入了一种统一的缓存抽象,它允许开发者在不关心具体...

    Spring基于注解的缓存配置--web应用实例

    在"SpringCacheWeb"这个压缩包文件中,可能包含了Spring Cache在Web应用中的配置示例,包括XML配置文件、Java配置类,以及使用注解的Controller和Service类。通过研究这些示例,你可以更好地理解如何在实际项目中...

    Ehcache整合Spring使用页面、对象缓存

    1. 高性能:Ehcache使用内存作为主要存储,访问速度快。 2. 可配置性:可以设置缓存策略,如大小限制、过期时间等。 3. 分布式:通过Terracotta服务器,Ehcache支持多节点的分布式缓存。 二、Ehcache与Spring整合 ...

    spring2.5整合ehcache2.0使用

    接下来,我们需要配置Ehcache。创建一个名为`ehcache.xml`的配置文件,放置在类路径下,设置缓存策略,包括缓存的最大大小、过期时间和内存策略等。例如: ```xml &lt;ehcache&gt; timeToIdleSeconds="120" ...

    spring+ehcache

    - 配置Ehcache:创建`ehcache.xml`配置文件,设置缓存策略、大小等参数。 - 配置Spring:在Spring配置文件中启用缓存管理器,并指定使用Ehcache。 - 使用注解:在需要缓存的方法上添加`@Cacheable`、`@CacheEvict...

    ehcache+spring demo 整合

    将 Ehcache 整合到 Spring 中,可以方便地在Spring应用中使用缓存服务。 在"ehcache+spring demo 整合"项目中,我们有两个工程:一个Web工程和一个Java工程。Web工程通常用于构建前端展示和处理HTTP请求,而Java...

    spring + ehcache + redis两级缓存

    在Spring中,我们可以配置Ehcache作为缓存 provider,通过注解或XML配置来启用和管理缓存。 **Redis** 是一个高性能的键值数据库,常被用作分布式缓存系统。相比于Ehcache,Redis支持更丰富的数据结构(如字符串、...

    spring整合ehCache

    Spring整合EhCache是将...在Spring中,我们还需要创建一个Spring配置文件(如`applicationContext.xml`),并配置EhCache的Bean。这包括定义`CacheManager`,加载`ehcache.xml`配置,并声明要使用的缓存: ```xml ...

    Ehcache 整合Spring 使用页面、对象缓存

    - 配置Ehcache以利用分布式特性,确保多个应用服务器间的缓存同步。 通过上述步骤,Ehcache 可以有效地整合到Spring环境中,实现页面和对象级别的缓存,从而显著提高应用程序的性能。同时,Ehcache的灵活性和扩展...

    spring+ehcache demo

    1. **配置Ehcache** 首先,我们需要在项目中引入Ehcache的依赖。在Maven项目中,可以在`pom.xml`中添加以下依赖: ```xml &lt;groupId&gt;org.ehcache &lt;artifactId&gt;ehcache &lt;version&gt;3.x.y&lt;/version&gt; &lt;!-- 替换...

    Spring4 整合EhCache实现 页面缓存 零配置

    在本文中,我们将深入探讨如何使用Spring4框架与EhCache进行整合,以实现零配置的页面缓存功能。EhCache是一个广泛使用的开源Java缓存解决方案,它提供了高效的内存和磁盘缓存机制,有助于提升应用程序性能。通过...

Global site tag (gtag.js) - Google Analytics