继续 上一章节[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
分享到:
相关推荐
在JAVA中使用Memcached进行行缓存是比较复杂的。Simple-Spring-Memcachd(SSM)企图通过实现几个基础的使用项来简化Memcached的使用。 该项在java-memcached客户端的基础上使用java5的注解和Sping/AspectJ的AOP,使...
一个通过注释在Spring bean中启用memcached缓存的嵌入式库。 大多数文档已移至github,但仍有一些文档仅在上可用。 介绍 当广泛使用分布式缓存时,它可能是一个庞大,繁琐,复杂而复杂的工作。 Simple Spring ...
顾名思义是基于spring和memcached的一个插件,该插件目前实现了memcached的查询缓存,利用java的annotation方式和spring的AOP切面编程使得我们在业务层获得缓存数据非常的方便 ##开始使用 首先你必须实现CacheSupport...
memcached安装和使用详细说明 一、开启memcached服务器端服务 二、引入jar 三、创建memcached客户端配置文件 四、创建memcached客户端程序 五、使用Spring AOP在数据查询的Service层实现数据缓存及读取
- Spring 缓存,包括redis、ehcache、spring-cache、memcached、使用redis实现session共享 等。 - spring-docs - Spring 文档生成工具,包括 Swagger - spring-bussiness - Spring 业务应用,包括 AOP、过滤...
- Spring Boot 缓存,包括redis、ehcache、spring-cache、memcached、使用redis实现session共享 等。 - springboot-templates - Spring Boot 模板,包括thymeleaf、freemarker、jsp、表单校验 等。 - ...
实现的主要功能有:客户端Frame、客户端VAD、异常处理、错误处理、AOP日志管理、计划任务、操作日志管理、数据分页功能、线程池管理、内存缓存管理。主要工具有:系统日志工具、应用属性配置工具、系统属性配置工具...
实现的主要功能有:客户端Frame、客户端VAD、异常处理、错误处理、AOP日志管理、计划任务、操作日志管理、数据分页功能、线程池管理、内存缓存管理。主要工具有:系统日志工具、应用属性配置工具、系统属性配置工具...
Tomcat+Mysql+设计模式+并发编程+JVM+Netty开源框架(SSM框架):Spring+SpringMVC+Mybatis微服务架构:Dubbo、SpringBoot、SprinGCloud、Docker分布式:分布式限流+分布式缓存+分布式通讯(限流:Nignx+Zookeeper/...