继续 上一章节[Memcached 入门-介绍-使用-优化
]
http://leiwuluan.iteye.com/blog/1173402
一、
下面主要 实现spring aop 对web 应用数据 进行缓存存取。
说到aop 大家就会想到使用spring 的aop进行切面进行对web Action 的方法进行控制。
下图是实现的流程:
####
这边用到spring的两个类,简单介绍:
1、1
org.springframework.aop.framework.ProxyFactoryBean
spring 这个类可以代理目标类的所有方法
。
<bean id="surroundAdvice" class="com.memCached.service.aop.SurroundAdvice">
<property name="memCachedClient" ref="memCachedClient" />
</bean>
<bean id="proxyFactory" abstract="true" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="interceptorNames">
<idref local="surroundAdvice" />
</property>
<property name="proxyTargetClass" value="true" />
</bean>
<bean id="studentRestService" parent="proxyFactory">
<property name="target" ref="_studentRestService" />
</bean>
<bean id="_studentRestService" class="com.student.rest.service.impl.StudentServiceImpl">
<property name="studentDao" ref="studentDao" />
</bean>
<bean id="studentDao" class="com.student.dao.impl.StudentDaoImpl" />
_studentRestService里面的所有方法将会被 surroundAdvice 给拦截。
spring 代理可以看看这位仁兄的:http://ajava.org/readbook/open/springrmdjt/15705.html
surroundAdvice
implements MethodInterceptor 实现这个接口 重写invoke 方法
在这个方法里进行控制 如下,
@Override
public Object invoke(MethodInvocation arg0) throws Throwable {
String fname = arg0.getMethod().getName();
String key = getKey(fname, arg0.getArguments());//方法名和参数组合成key
StringBuffer sb = new StringBuffer();
Object resultObj = null;
if (memCachedClient != null) {
if(MemcachedConf.CACHE_FLAG==MemcacheFlag.CLOSE_CACHE){
memCachedClient.delete(key);
sb.append(",不使用缓存");
resultObj = arg0.proceed();
}else{
resultObj = memCachedClient.get(key);
if(resultObj==null){
resultObj = arg0.proceed();
ResultDto s = (ResultDto)resultObj;
if("success".equals(s.returncode)){
sb.append(",数据存入缓存");
memCachedClient.set(key, s, new Date(1000*60*60));
}
}else{
sb.append(",缓存数据");
}
}
}else{
resultObj = arg0.proceed();
}
return resultObj;
}
二、
一步一步 开始,从安装memcached 到web 搭建,运行,测试(有缓存与没有缓存的访问时间,测试)
2、1 安装
,以windows下为例吧,linux下也是一样的简单。
http://leiwuluan.iteye.com/blog/1172798
2、2 web 搭建
,数据库
:mysql,服务用
:rest,数据库操作
:Jdbc连接池
下面工程,不多说。
注意:ITeye最多10MB 只好把里面jar去了。
可以到官网下jar 包.
参考:
http://leiwuluan.iteye.com/blog/1173402
下个cxf:官方地址:http://cxf.apache.org/download.html
2、3 测试结果显示
无缓存处理时间:
---------------------------------------------------------------------------------------------
缓存数据处理时间:
待续...........................
- 大小: 18.4 KB
- 大小: 63.1 KB
- 大小: 60.8 KB
分享到:
相关推荐
SSM整合Memcached缓存是将Spring、SpringMVC和MyBatis这三大Java Web开发框架与Memcached相结合,以实现高效的数据缓存功能。Memcached是一款轻量级的分布式内存对象缓存系统,用于减少数据库负载,提高应用程序性能...
在构建Web应用程序时,"Spring4+SpringMVC+mysql+memcached【同时支持mybatis+hibernate两种底层操作框架】"是一个常见的技术栈,它涵盖了多个关键组件,为高效、灵活的开发提供了坚实的基础。以下是这个技术组合中...
《Simple-Spring-Memcached统一缓存的使用详解》 在Java应用中,尤其是在中大型项目中,有效地管理和使用缓存对于提升系统性能至关重要。Simple-Spring-Memcached(SSM)是一个流行的缓存框架,它整合了Spring框架...
标题“Spring与memcached整合”涉及的是在Java开发环境中如何将Spring框架与memcached缓存系统相结合使用,以便提升应用程序的性能和响应速度。这里我们将深入探讨这一整合过程中的关键概念和技术。 首先,...
在本项目中,我们主要探讨的是如何将Spring Cache与memcached进行整合,以提升应用程序的性能和效率。Spring Cache是Spring框架的一部分,它提供了一种抽象的缓存管理机制,可以方便地集成到各种缓存解决方案中,如...
标题中的"spring+memcached.jar"表明这是一个整合了Spring框架与Memcached缓存服务的Java应用程序。Memcached是一种广泛使用的分布式内存对象缓存系统,它能够通过减轻数据库负载来提高Web应用的性能。Spring框架是...
集成Spring与Memcached可以显著提高应用的性能,通过缓存频繁访问的数据,降低对数据库的压力。同时,通过Spring的AOP特性,我们可以轻松地在整个应用中实现缓存管理,使代码更加简洁和模块化。
标题中的“memcache也spring,hibernate的配置”指的是如何在Java开发环境中,结合Memcached缓存系统、Spring框架和Hibernate持久化框架进行集成配置。Memcached是一种高性能的分布式内存对象缓存系统,用于加速动态...
在JAVA中使用Memcached进行行缓存是比较复杂的。Simple-Spring-Memcachd(SSM)企图通过实现几个基础的使用项来简化Memcached的使用。 该项在java-memcached客户端的基础上使用java5的注解和Sping/AspectJ的AOP,使...
- Memcached是一个高性能的分布式内存对象缓存系统,它可以存储键值对数据,用于缓解数据库负载,提高Web应用的响应速度。 - Memcached使用简单的文本协议,支持多语言客户端,且基于内存存储,快速且轻量级。 2....
一个通过注释在Spring bean中启用memcached缓存的嵌入式库。 大多数文档已移至github,但仍有一些文档仅在上可用。 介绍 当广泛使用分布式缓存时,它可能是一个庞大,繁琐,复杂而复杂的工作。 Simple Spring ...
**正文** Memcached 是一款高性能、分布式的内存对象缓存系统,它被广泛...同时,通过Spring的AOP(面向切面编程)特性,我们能够轻松地在代码中引入缓存逻辑,降低对数据库的依赖,提升整体系统的性能和可维护性。
同时,为了实现AOP(面向切面编程)对方法执行结果的缓存,可以利用Spring的`@Cacheable`、`@CacheEvict`等注解,配合`CacheResolver`和`CacheErrorHandler`进行缓存的自动管理。 在实际应用中,还需要考虑缓存的...
Memcached则是一个高性能的分布式内存缓存系统,用于加速动态Web应用,通过减少对数据库的访问来提高应用程序的响应速度。 【描述】提到这是一个基于Maven构建的工程,这意味着项目的构建和依赖管理遵循Maven的标准...
【描述】"maven-springmvc-mybatis -memcached"描述了一个使用Maven构建工具、SpringMVC作为前端控制器、MyBatis作为持久层框架,并结合Memcached作为缓存服务的Web应用开发环境。这个项目旨在展示如何将这些组件...
本文档主要讲述了如何将Memcached缓存系统与Spring框架以及MyBatis ORM工具进行集成。通过这种方式,可以有效地提高应用程序性能,尤其是在处理大量数据读取操作时,能够极大地减少数据库的压力。 #### 二、simple-...
1. **无缝集成**:SSM通过Spring的Bean管理机制,将Memcached服务作为Spring的一个组件进行配置,使得在Spring应用中使用缓存如同使用其他服务一样简单。 2. **注解支持**:利用Spring的`@Cacheable`、`@CacheEvict...
SSM整合Memcached是将Spring、Spring MVC和MyBatis这三大Java Web开发框架与Memcached内存缓存系统相结合的过程,以提升应用的性能和响应速度。Memcached是一款高性能、分布式内存对象缓存系统,广泛用于减轻数据库...
在SSM项目中,它可以缓存经常访问的数据,减少对数据库的直接查询,从而提升应用性能。 5. **整合过程**:整合SSM和Memcached通常包括以下几个步骤: - 配置Memcached客户端库,如spymemcached或xmemcached,这些...