一,选择缓存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;
}
}
分享到:
相关推荐
本篇文章将深入探讨Spring AOP中的动态代理、责任链模式以及注解的使用。 首先,动态代理是实现AOP的关键技术之一。在Java中,有两种主要的动态代理实现方式:JDK动态代理和CGLIB。JDK动态代理基于接口,当目标类...
这个实例中的压缩包可能包含了配置文件、源代码和测试案例,你可以通过解压`demo-caching-with-spring-aop-master`来查看完整的实现,学习如何配置Spring AOP,以及如何定义和使用自定义缓存注解。 总的来说,...
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> ``` 在ehcache.xml中,你可以定义具体的缓存设置,如大小、存活时间等。 3. **创建缓存注解**:在Spring ...
在Spring的配置文件中,我们可以使用`<aop:config>`和`<cache:annotation-driven>`标签来启用AOP和缓存注解支持。然后,在我们的业务逻辑类中,可以使用`@Cacheable`注解标记那些需要缓存的方法。 总的来说,通过...
标题 "使用Spring AOP对Web应用数据进行Memcached缓存" 涉及到的关键技术是Spring AOP(面向切面编程)和Memcached,这是一种常见的高性能、分布式内存对象缓存系统。在Web应用程序中,使用缓存可以显著提高数据访问...
总的来说,这个"AOP Cache源代码"项目演示了如何利用Spring AOP和Ehcache构建一个灵活且高效的缓存系统。通过拦截器,我们可以将缓存逻辑与业务逻辑分离,保持代码的整洁和可维护性。同时,Ehcache提供了强大的缓存...
Spring是Java领域中最流行的框架之一,它提供了对AOP的强大支持,使得我们可以方便地创建和使用切面。 描述中的"自己写的aop代理spring"意味着我们将学习如何自定义AOP代理来增强Spring的功能。在Spring中,有两种...
本代码通过使用spring aop+ehcache的技术,实现了方法级别的查询缓存,主要原理是 方法的完整路径+方法参数值,作为key,放入cache中,下次访问时先判断cache中是否有该key.
在本文中,我们将使用Spring AOP来实现Redis缓存数据库查询,解决了缓存内容的正确性、避免脏读、序列化查询结果等问题。 在解决问题中,我们首先需要解决的是如何避免脏读的问题。为了解决这个问题,我们可以在...
在Spring中,我们可以使用`<ehcache>`标签来配置Ehcache,或者通过Java配置类来设置。Ehcache支持内存和磁盘两种存储方式,并且可以实现分布式缓存,使得多台服务器共享同一份缓存,进一步提高系统的扩展性和性能。 ...
总之,`spring-modules-cache.jar`中的Spring Modules Cache是Spring框架的一个强大补充,它简化了缓存的管理和使用,帮助开发者构建高性能、易维护的Java应用。无论是在单体应用还是微服务架构中,这个库都能发挥...
### Spring实现Cache简单解决方案 #### 一、背景与概述 在现代软件开发中,缓存是一种常见的优化手段,用于提高应用程序的性能。Spring框架作为Java领域最流行的开发框架之一,为开发者提供了丰富的缓存管理机制。...
本篇文章将深入探讨如何在Spring中通过AOP来整合EHCache,特别是在使用Spring Modules的情况下。 首先,我们需要理解Spring Modules(SpringModule)项目,这是一个为Spring框架提供额外功能的开源项目,它包含了对...
SpringCache是一个基于AOP(Aspect-Oriented Programming)的缓存解决方案,可以自动地为我们实现缓存功能,从而减少了编写模板代码的工作量。 使用SpringCache,我们可以轻松地将缓存功能添加到我们的应用程序中。...
Spring Cache基于AOP(面向切面编程)提供了一个通用的缓存抽象层,它允许开发者在不修改代码的情况下,通过注解方式实现缓存的添加和管理。Spring Cache支持多种缓存提供商,包括Redis、 Ehcache、Gemfire等。在本...
4. **启用Spring Cache**:在Spring配置文件中,使用`@EnableCaching`注解启用缓存功能。 5. **使用注解**:在业务逻辑的方法上使用`@Cacheable`、`@CacheEvict`和`@CachePut`注解,指定缓存的名称和键生成策略。...
2. Spring AOP结合Redis:我们可以使用Spring AOP来实现缓存的统一管理,通过切面技术来拦截需要缓存的数据,并将其存储到Redis中。 3. SPEL解析注解参数:我们可以使用SPEL来解析注解参数,获取缓存key和过期时间...
1. **工作原理**:Spring Cache 使用 AOP (面向切面编程) 来拦截被注解的方法调用,并根据配置执行缓存操作。具体流程包括确定缓存管理器、生成缓存键、执行缓存命中或未命中的逻辑等。 2. **缓存管理器**:默认...
10. **模块化设计**:Spring框架是高度模块化的,开发者可以根据需要选择使用哪些模块,如核心容器、数据访问/集成、Web等。 在4.1.6版本中,Spring可能包含了修复的一些已知问题、性能优化和新功能的添加。具体...