`

使用Spring AOP设置Cache

阅读更多
一,选择缓存EHCache
毫无疑问ehcache.1.2.4.jar,这个发行包必须加入项目。

二,ehcache.xml 加入classpath
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xsi:noNamespaceSchemaLocation="ehcache.xsd">

	<defaultCache
		maxElementsInMemory="10000"
		eternal="false"
		overflowToDisk="true"
		timeToIdleSeconds="120"
		timeToLiveSeconds="120"
		diskPersistent="false"
		diskExpiryThreadIntervalSeconds="120" />
	
	<cache name="legendapl"
		maxElementsInMemory="10000"
		eternal="false"
		overflowToDisk="false"
		timeToIdleSeconds="120"
		timeToLiveSeconds="360"
		diskPersistent="false"
		diskExpiryThreadIntervalSeconds="120" />
</ehcache>

其中Cache各各属性表示意义,可望文而知。

三,在applicationContext.xml加入缓存管理组件。
<bean>
	<bean id="ehcacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
		<property name="configLocation" value="classpath:ehcache.xml" />
	</bean>
</bean>


四,缓存使用演示
@Aspect
@Component
public class CacheInterceptor extends BaseInterceptor{

	@Autowired
	@Qualifier("ehcacheManager")
	private CacheManager cm;
	
//	@Autowired
//	@Qualifier("cache")
//	private Cache cache;

	@Override
	@Around("execution(* cn.com.legendapl.spring.dao.impl.*.findAllUsers(..))")
	public Object around(ProceedingJoinPoint jp) throws Throwable {
		Cache cache = cm.getCache("legendapl");
		String key = "";
		Object[] args = jp.getArgs();
		for (Object o : args) {
			key += o.toString();
		}
		
		Object result = null;
		
		Element element = cache.get(key);
		if (element != null) {
			result = element.getValue();
		} else {
			result = jp.proceed();
			cache.put(new Element(key, result));
		}
		return result;
	}
}
2
2
分享到:
评论

相关推荐

    SpringAOP之探秘(动态代理、责任链模式、注解使用)

    本篇文章将深入探讨Spring AOP中的动态代理、责任链模式以及注解的使用。 首先,动态代理是实现AOP的关键技术之一。在Java中,有两种主要的动态代理实现方式:JDK动态代理和CGLIB。JDK动态代理基于接口,当目标类...

    spring aop 自定义缓存实现

    这个实例中的压缩包可能包含了配置文件、源代码和测试案例,你可以通过解压`demo-caching-with-spring-aop-master`来查看完整的实现,学习如何配置Spring AOP,以及如何定义和使用自定义缓存注解。 总的来说,...

    SpringAOP结合ehCache实现简单缓存实例

    &lt;bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"&gt; ``` 在ehcache.xml中,你可以定义具体的缓存设置,如大小、存活时间等。 3. **创建缓存注解**:在Spring ...

    Spring AOP+ehCache简单缓存系统解决方案

    在Spring的配置文件中,我们可以使用`&lt;aop:config&gt;`和`&lt;cache:annotation-driven&gt;`标签来启用AOP和缓存注解支持。然后,在我们的业务逻辑类中,可以使用`@Cacheable`注解标记那些需要缓存的方法。 总的来说,通过...

    使用spring aop对web 应用数据进行memcached缓存

    标题 "使用Spring AOP对Web应用数据进行Memcached缓存" 涉及到的关键技术是Spring AOP(面向切面编程)和Memcached,这是一种常见的高性能、分布式内存对象缓存系统。在Web应用程序中,使用缓存可以显著提高数据访问...

    AOP Cache源代码

    总的来说,这个"AOP Cache源代码"项目演示了如何利用Spring AOP和Ehcache构建一个灵活且高效的缓存系统。通过拦截器,我们可以将缓存逻辑与业务逻辑分离,保持代码的整洁和可维护性。同时,Ehcache提供了强大的缓存...

    aop例子aop例子

    Spring是Java领域中最流行的框架之一,它提供了对AOP的强大支持,使得我们可以方便地创建和使用切面。 描述中的"自己写的aop代理spring"意味着我们将学习如何自定义AOP代理来增强Spring的功能。在Spring中,有两种...

    spring AOP实现查询缓存

    本代码通过使用spring aop+ehcache的技术,实现了方法级别的查询缓存,主要原理是 方法的完整路径+方法参数值,作为key,放入cache中,下次访问时先判断cache中是否有该key.

    Spring AOP实现Redis缓存数据库查询

    在本文中,我们将使用Spring AOP来实现Redis缓存数据库查询,解决了缓存内容的正确性、避免脏读、序列化查询结果等问题。 在解决问题中,我们首先需要解决的是如何避免脏读的问题。为了解决这个问题,我们可以在...

    实战项目-AOP-cache

    在Spring中,我们可以使用`&lt;ehcache&gt;`标签来配置Ehcache,或者通过Java配置类来设置。Ehcache支持内存和磁盘两种存储方式,并且可以实现分布式缓存,使得多台服务器共享同一份缓存,进一步提高系统的扩展性和性能。 ...

    jar包-spring-modules-cache.jar

    总之,`spring-modules-cache.jar`中的Spring Modules Cache是Spring框架的一个强大补充,它简化了缓存的管理和使用,帮助开发者构建高性能、易维护的Java应用。无论是在单体应用还是微服务架构中,这个库都能发挥...

    Spring来实现一个Cache简单的解决方案

    ### Spring实现Cache简单解决方案 #### 一、背景与概述 在现代软件开发中,缓存是一种常见的优化手段,用于提高应用程序的性能。Spring框架作为Java领域最流行的开发框架之一,为开发者提供了丰富的缓存管理机制。...

    Spring中AOP实现EHCache的整合中采用SpringModule结合(二)

    本篇文章将深入探讨如何在Spring中通过AOP来整合EHCache,特别是在使用Spring Modules的情况下。 首先,我们需要理解Spring Modules(SpringModule)项目,这是一个为Spring框架提供额外功能的开源项目,它包含了对...

    SpringCache与redis集成,优雅的缓存解决方案.docx

    SpringCache是一个基于AOP(Aspect-Oriented Programming)的缓存解决方案,可以自动地为我们实现缓存功能,从而减少了编写模板代码的工作量。 使用SpringCache,我们可以轻松地将缓存功能添加到我们的应用程序中。...

    Redis整合SpringCache实例

    Spring Cache基于AOP(面向切面编程)提供了一个通用的缓存抽象层,它允许开发者在不修改代码的情况下,通过注解方式实现缓存的添加和管理。Spring Cache支持多种缓存提供商,包括Redis、 Ehcache、Gemfire等。在本...

    SSM与memcached整合项目Spring Cache

    4. **启用Spring Cache**:在Spring配置文件中,使用`@EnableCaching`注解启用缓存功能。 5. **使用注解**:在业务逻辑的方法上使用`@Cacheable`、`@CacheEvict`和`@CachePut`注解,指定缓存的名称和键生成策略。...

    Spring AOP如何整合redis(注解方式)实现缓存统一管理详解

    2. Spring AOP结合Redis:我们可以使用Spring AOP来实现缓存的统一管理,通过切面技术来拦截需要缓存的数据,并将其存储到Redis中。 3. SPEL解析注解参数:我们可以使用SPEL来解析注解参数,获取缓存key和过期时间...

    Spring cache

    1. **工作原理**:Spring Cache 使用 AOP (面向切面编程) 来拦截被注解的方法调用,并根据配置执行缓存操作。具体流程包括确定缓存管理器、生成缓存键、执行缓存命中或未命中的逻辑等。 2. **缓存管理器**:默认...

    spring官方完整jar包-4.1.6版

    10. **模块化设计**:Spring框架是高度模块化的,开发者可以根据需要选择使用哪些模块,如核心容器、数据访问/集成、Web等。 在4.1.6版本中,Spring可能包含了修复的一些已知问题、性能优化和新功能的添加。具体...

Global site tag (gtag.js) - Google Analytics