`
xnk9499
  • 浏览: 38314 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Memcached+Spring AOP无入侵式集成(一)

 
阅读更多

memcached 安装什么的就不再说了,网上太多了。

 

客户端,我选择的是Java Memcached Client,新版本修复了很多问题,而且稳定性上高于其他版本。

 

下面就是系统配置,加入Memcached 引用:

 

<bean class="com.danga.MemCached.SockIOPool" destroy-method="shutDown"
		factory-method="getInstance" id="memcachedPool" init-method="initialize">
		<constructor-arg>
			<value>neeaMemcachedPool</value>
		</constructor-arg>
		<property name="servers">
			<list>
				<value>127.0.0.1:12345</value>
			</list>
		</property>
		<property name="initConn">
			<value>10</value>
		</property>
		<property name="minConn">
			<value>5</value>
		</property>
		<property name="maxConn">
			<value>100</value>
		</property>
		<property name="maintSleep">
			<value>3000</value>
		</property>
		<property name="nagle">
			<value>false</value>
		</property>
		<property name="socketTO">
			<value>3000</value>
		</property>
	</bean>

	<bean class="com.danga.MemCached.MemCachedClient">
		<constructor-arg>
			<value>neeaMemcachedPool</value>
		</constructor-arg>
	</bean>	

 实现整合的类,主要是利用Spring Aop的环绕通知来实现无入侵式的整合,代码如下:

 

 

public class MemcachedIntegrated {

	@Autowired
	private MemCachedClient mcc;
	private static Log log = LogFactory.getLog(MemcachedIntegrated.class);

	public Object doAround(ProceedingJoinPoint jp) {
		Object result = null;
		String key = "";
		StringBuffer sb = new StringBuffer();
		sb.append(jp.getSignature().getName());
                //Key的规则这块,还不完善,如果查询参数传入的是一个对象的时候,就没用了
		for (Object obj : jp.getArgs()) {	
			if (obj !=null)
				sb.append(obj);
		}
		key = sb.toString().replace(" ", "");
		result = mcc.get(key);
		log.info(key);
		if (result != null) {
			log.info("Get cached object:" + key);
			return result;
		}
		try {
			result = jp.proceed(jp.getArgs());
		} catch (Throwable e) {
		}
		if (result !=null)
			mcc.set(key, result, 3600);
		return result;

	}

}

 配置AOP:

 

 

<bean id="memcachedIntegrated" class="com.××××.dao.ibatis.MemcachedIntegrated"/>
   <aop:config>  
        <aop:aspect id="TestAspect" ref="memcachedIntegrated">  
            <!--配置com.×××.dao.ibatis包下所有已get开头的方法-->  
            <aop:pointcut id="daoIntegarte"  
                expression="execution(* com.××××.dao.ibatis.*.get*(..))" />  
            <aop:around pointcut-ref="daoIntegarte" method="doAround"/>   
        </aop:aspect>  
    </aop:config>
	

 通过以上配置就完成集成Memcached。

接下来继续集成memcached后,如果有做更新、删除、新增操作时,如何更新缓存。

分享到:
评论

相关推荐

    springboot+memcached+mybatis+shiro+webservice聚合工程架构

    此套架构整合了springboot+memcached+mybatis+shiro+webservice的聚合式架构,内有具体代码,望大家一起学习交流,写博客因为太懒不愿意写 直接传了。请把解压后的java_memcached-release_2.6.3.jar和commons-pool-...

    memcached+tomcat的session共享

    "memcached+tomcat的session共享"就是解决这个问题的一种常见方案。 Memcached是一款高性能、分布式的内存对象缓存系统,它能够将数据存储在内存中,从而提高数据访问速度。Tomcat则是一款广泛使用的Java应用服务器...

    memcached+spring

    在Spring应用中,我们需要创建一个Memcached的配置类,使用`@Configuration`和`@EnableCaching`注解开启缓存功能。配置中需要指定缓存管理器,这里通常是`MemcachedCacheManager`,并通过`...

    spring+struts+mybatis+security+memcached+GBAC权限架构开源项目

    spring+struts+mybatis+security+memcached+GBAC权限架构开源项目, 懂的自己下载看,不懂的就去问懂的,还有就是有的人说上一个版本的代码有点乱,我只能说你站在你的角度看,我站在我的角度写,说明我们有代沟,大概如此...

    Spring4+SpringMVC+mysql+memcached【同时支持mybatis+hibernate两种底层操作框架】

    在构建Web应用程序时,"Spring4+SpringMVC+mysql+memcached【同时支持mybatis+hibernate两种底层操作框架】"是一个常见的技术栈,它涵盖了多个关键组件,为高效、灵活的开发提供了坚实的基础。以下是这个技术组合中...

    memcached+tomcat7共享session所需要的jar包

    标题中的“memcached+tomcat7共享session所需要的jar包”是指使用Memcached作为分布式缓存系统,实现Tomcat7服务器间的Session共享。这通常是为了在集群环境中解决Session复制或粘滞会话的问题,提高Web应用的可扩展...

    memcached+tomcat7实现session共享的jar包

    memcached+tomcat7 session共享用到的jar包:javolution-5.5.1.jar,kryo-1.03.jar,kryo-serializers-0.10.jar,memcached-2.5.jar,memcached-session-manager-1.5.1.jar,memcached-session-manager-tc7-1.5.1.jar,...

    《APMServ 5.2.6》:一键快速搭建Apache+PHP+MySQL+Nginx+Memcached+ASP平台的绿色软件

    《APMServ 5.2.6》:一键快速搭建Apache+PHP+MySQL+Nginx+Memcached+ASP平台的绿色软件 APMServ 5.2.6 绿色服务器 PHP服务器 ASP服务器 APMServ 5.2.6 是一款拥有图形界面的快速搭建Apache 2.2.9、PHP 5.2.6...

    memcached和spring集成

    memcached和spring集成、内附测试例子

    Linux+Nginx+Memcached+Redis+PHP+电商购物模块实战开发

    本套课程针对有PHP或Java开发基础的童鞋。为适应企业对高端开发工程师的需求,整合了...以及现如今使用广泛的缓存系统。最后结合了PHP+TP框架的一个购物模块开发,加深对基础的掌握。最终达到掌握这几项知识点的目的!

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

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

    memcached+asp.net4.0

    "memcached+asp.net4.0" 这个标题表明我们要讨论的是在ASP.NET 4.0框架下如何集成和使用memcached作为缓存解决方案。memcached是一个分布式内存对象缓存系统,常用于提高Web应用程序的性能,通过存储数据到内存中,...

    Windows+Nginx+Memcached+Tomcat6负载均衡

    Windows+Nginx+Memcached+Tomcat6负载均衡

    hibernate4+spring4+memcached 工程

    【标题】"hibernate4+spring4+memcached 工程"是一个集成项目,它结合了三个关键的开源技术,旨在提供一个高效且可扩展的后端数据管理解决方案。Hibernate 4是Java领域中最流行的ORM(对象关系映射)框架,它允许...

    Netty+Spring Boot仿微信 全栈开发高性能后台及客户端

    综上所述,"Netty+Spring Boot仿微信 全栈开发高性能后台及客户端"项目是一个综合性的学习和实践平台,涵盖了网络编程、后端开发、全栈集成以及性能优化等多个领域。通过这个项目,开发者不仅可以提升自己的技术能力...

    Memcached与Spring、Mybatis集成.doc

    ### Memcached与Spring、Mybatis集成 #### 一、简单介绍 本文档主要讲述了如何将Memcached缓存系统与Spring框架以及MyBatis ORM工具进行集成。通过这种方式,可以有效地提高应用程序性能,尤其是在处理大量数据读取...

    windows下memcached+memcached.dll 5.3.8

    标题中的“Windows下memcached+memcached.dll 5.3.8”指的是在Windows操作系统上安装和使用Memcached服务的场景,其中`memcached.dll 5.3.8`是Memcached服务器的一个特定版本的动态链接库文件。Memcached是一款高...

    linux 服务器搭建工具java+memcached+mysql+redis+tomcat.rar

    linux 服务器搭建工具java+memcached+mysql+redis+tomcat

    memadmin+php_memcached+memcached1.4.5

    标题中的"memadmin+php_memcached+memcached1.4.5"暗示了这是一个关于内存缓存管理系统、PHP扩展以及memcached服务器的组合。这里的关键技术包括`memadmin`(一个用于管理memcached的工具)、`php_memcached`(PHP...

    Nginx+Memcached+Tomcat集群需要的jar包

    Nginx+Memcached+Tomcat集群需要的jar包

Global site tag (gtag.js) - Google Analytics