使用java5的注解和Sping/AspectJ的AOP 来实现Memcached的缓存
来源:互联网 发布:深圳垦鑫达对员工知乎 编辑:程序博客网 时间:2024/05/22 03:14
使用java5的注解和Sping/AspectJ的AOP 来实现Memcached的缓存今天要介绍的是Simple-Spring-Memcached,它封装了对MemCached的调用,使MemCached的客户端开发变得超乎寻常的简单,只要一行代码就行:@ReadThroughAssignCache(assignedKey = "VETS", expiration = 300, namespace = "NELZ")是不是很神奇?这行代码指定了MemCached的key,过期时间和命名空间。假设你的MemCached服务器IP是:196.168.10.101,端口是:12000,那么在数据调用的配置文件中只要加上下面配置代码就可以了: 1 <import resource="classpath:simplesm-context.xml" /> 5 <bean id="memcachedConnectionBean" class="net.nelz.simplesm.config.MemcachedConnectionBean"> 7 <property name="consistentHashing" value="true" /> 9 <property name="nodeList" value="196.168.10.101:12000" /> 5 </bean> 从simplesm-context.xml的内容中,可以看出它所封装的类和方法: 1 <bean id="memcachedClientFactory" class="net.nelz.simplesm.config.MemcachedClientFactory" > 3 property name="bean" ref="memcachedConnectionBean" /> 5 </bean> 9 <bean id="memcachedClient" factory-bean="memcachedClientFactory" factory-method="createMemcachedClient" /> 13 <bean id="methodStore" class="net.nelz.simplesm.aop.CacheKeyMethodStoreImpl" /> 17 <bean id="net.nelz.simplesm.DefaultKeyProvider" class="net.nelz.simplesm.impl.DefaultKeyProvider"> 19 <property name="methodStore" ref="methodStore" /> 21 </bean> 25 <bean id="readThroughSingleCache" class="net.nelz.simplesm.aop.ReadThroughSingleCacheAdvice"> 27 <property name="cache" ref="memcachedClient" /> 29 <property name="methodStore" ref="methodStore" /> 31 <property name="defaultKeyProvider" ref="net.nelz.simplesm.DefaultKeyProvider" /> 33 </bean> 35 <bean id="readThroughMultiCache" class="net.nelz.simplesm.aop.ReadThroughMultiCacheAdvice"> 37 <property name="cache" ref="memcachedClient" /> 39 <property name="methodStore" ref="methodStore" /> 41 <property name="defaultKeyProvider" ref="net.nelz.simplesm.DefaultKeyProvider" /> 43 </bean> 45 <bean id="readThroughAssignCache" class="net.nelz.simplesm.aop.ReadThroughAssignCacheAdvice"> 47 <property name="cache" ref="memcachedClient" /> 49 <property name="methodStore" ref="methodStore" /> 51 <property name="defaultKeyProvider" ref="net.nelz.simplesm.DefaultKeyProvider" /> 53 </bean> 54 55 <bean id="updateSingleCache" class="net.nelz.simplesm.aop.UpdateSingleCacheAdvice"> 57 <property name="cache" ref="memcachedClient" /> 59 <property name="methodStore" ref="methodStore" /> 61 <property name="defaultKeyProvider" ref="net.nelz.simplesm.DefaultKeyProvider" /> 63 </bean> 64 65 <bean id="updateMultiCache" class="net.nelz.simplesm.aop.UpdateMultiCacheAdvice"> 67 <property name="cache" ref="memcachedClient" /> 69 <property name="methodStore" ref="methodStore" /> 71 <property name="defaultKeyProvider" ref="net.nelz.simplesm.DefaultKeyProvider" /> 73 </bean> 75 <bean id="updateAssignCache" class="net.nelz.simplesm.aop.UpdateAssignCacheAdvice"> 77 <property name="cache" ref="memcachedClient" /> 79 <property name="methodStore" ref="methodStore" /> 81 <property name="defaultKeyProvider" ref="net.nelz.simplesm.DefaultKeyProvider" /> 83 </bean> 85 <bean id="invalidateSingleCache" class="net.nelz.simplesm.aop.InvalidateSingleCacheAdvice"> 87 <property name="cache" ref="memcachedClient" /> 89 <property name="methodStore" ref="methodStore" /> 91 <property name="defaultKeyProvider" ref="net.nelz.simplesm.DefaultKeyProvider" /> 93 </bean> 95 <bean id="invalidateMultiCache" class="net.nelz.simplesm.aop.InvalidateMultiCacheAdvice"> 97 <property name="cache" ref="memcachedClient" /> 99 <property name="methodStore" ref="methodStore" />101 <property name="defaultKeyProvider" ref="net.nelz.simplesm.DefaultKeyProvider" />103 </bean>105 <bean id="invalidateAssignCache" class="net.nelz.simplesm.aop.InvalidateAssignCacheAdvice">107 <property name="cache" ref="memcachedClient" />109 <property name="methodStore" ref="methodStore" />111 <property name="defaultKeyProvider" ref="net.nelz.simplesm.DefaultKeyProvider" />113 </bean> Simple-Spring-Memcached还提供了一个例子,在spring的petClinic例子中加入了几行代码,就实现了对MemCached的调用: 1 import net.nelz.simplesm.annotations.ReadThroughAssignCache; 2 3 import net.nelz.simplesm.annotations.ReadThroughSingleCache; 4 5 @ReadThroughAssignCache(assignedKey = "VETS", expiration = 300, namespace = "NELZ") 6 7 public Collection<Vet> getVets() { 8 9 System.out.println("\n ! ! !Gonna wait a bit: " + new Date() + "\n"); 10 11 try {12 13 Thread.sleep(4000);14 15 } catch (Exception ex) {}16 17 return sessionFactory.getCurrentSession().createQuery("from Vet vet order by vet.lastName, vet.firstName").list();18 19 } 为了加强测试的效果,在第一次读取数据时,故意停顿了一下(sleep)。
转载自:http://www.blogjava.net/hao446tian/archive/2012/04/10/373725.html
0 0
- 使用java5的注解和Sping/AspectJ的AOP 来实现Memcached的缓存
- 使用java5的注解和Sping/AspectJ的AOP 来实现Memcached的缓存
- 使用java5的注解和Sping/AspectJ的AOP 来实现Memcached的缓存
- 使用AspectJ提供的注解方式实现aop
- 使用AspectJ基于注解的Aop
- Sping AOP用AspectJ注解的方式拦截不到SpringMVC的controller方法?
- 基于aspectj的注解aop
- spring 4.0 AOP (使用AspectJ的注解方式 的aop实现)简单实例
- Spring-AOP:基于AspectJ注解的AOP
- 基于注解的Sping AOP详解
- 【JavaWeb-24】AOP介绍和术语、手动/半自动/自动实现AOP、基于XML和注解的AspectJ使用、JdbcTemplate的使用
- Spring AOP的使用 基于全注解AspectJ
- Spring AOP之AspectJ的注解方式使用
- Spring使用AspectJ进行AOP的开发:注解方式
- Spring基于注解@AspectJ的AOP
- Spring基于注解@AspectJ的AOP
- day3_Spring_02_基于aspectj的注解aop操作
- 基于 自定义注解 和 aop 实现使用memcache 对数据库的缓存 示例
- 安装mysql时启动服务出错问题
- ubuntu上mongodb的安装
- mongodb在windows下的安装
- 1.git使用入门之基本的更新提交操作
- 2.git使用之git fetch和git push的区别
- 使用java5的注解和Sping/AspectJ的AOP 来实现Memcached的缓存
- spring + ibatis 多数据源事务(分布式事务)管理配置方法(转)
- Hadoop集群配置(最全面总结 )(转)
- java的几个日志框架log4j、logback、common-logging
- 几个比较好的学习网站
- mysql优化思路
- hibernate懒加载
- tomcat用虚拟目录方式发布项目
- log4j详细配置