memcached和spring集成(主要说spring和memcached的集成,spring本身的东东就不多说啦)
本文demo下载http://download.csdn.net/detail/zhsj1106/4507631
接上篇 :在linux服务器上安装memcached http://blog.csdn.net/zhsj1106/article/details/7877542
1、添加jar包,下载地址:http://www.kuaipan.cn/file/id_7845608170131203.htm
2、新建spring配置文件,配置内容如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd" default-autowire="autodetect" default-lazy-init="false"> <bean id="sockIOPool" class="com.danga.MemCached.SockIOPool" factory-method="getInstance" init-method="initialize" destroy-method="shutDown"> <constructor-arg> <value>neeaMemcachedPool</value> </constructor-arg> <property name="servers"> <list> <value>${memcache.server}</value> </list> </property> <property name="initConn"> <value>${memcache.initConn}</value> </property> <property name="maxConn"> <value>${memcache.maxConn}</value> </property> <property name="maintSleep"> <value>${memcache.maintSleep}</value> </property> <property name="nagle"> <value>${memcache.nagle}</value> </property> <property name="socketTO"> <value>${memcache.socketTO}</value> </property> </bean> <bean id="memcachedClient" class="com.danga.MemCached.MemCachedClient"> <constructor-arg> <value>neeaMemcachedPool</value> </constructor-arg> <property name="compressEnable"> <value>true</value> </property> <property name="compressThreshold"> <value>4096</value> </property> </bean> </beans>
3、新建memcache.properties,配置如下:
#memcached服务端ip和端口号 memcache.server=192.168.136.129:12000 #连接池初始连接数 memcache.initConn=5 #连接池最小连接数 memcache.minConn=5 #连接池最大连接数 memcache.maxConn=250 #主线程睡眠时间 memcache.maintSleep=30 #TCP参数 memcache.nagle=false memcache.socketTO=3000
4、测试
测试基类:
package com.zhsj.memcached; import junit.framework.TestCase; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class AbstractTransactionalTests extends TestCase { private ApplicationContext context; @Override protected void setUp() throws Exception { String[] config = { "spring/applicationContext.xml", "spring/applicationContext-memcache.xml"}; this.context = new ClassPathXmlApplicationContext(config); super.setUp(); } public ApplicationContext getContext() { return context; } public void setContext(ApplicationContext context) { this.context = context; } }
package com.zhsj.memcached; import com.danga.MemCached.MemCachedClient; import com.zhsj.memcached.model.User; public class MemcacheTest extends AbstractTransactionalTests { private MemCachedClient memcachedClient; private void init() { this.memcachedClient = (MemCachedClient) getContext().getBean( "memcachedClient"); } public void testAdd() { init(); System.out.println(memcachedClient.set("memcached", "memcachedtest")); } public void testAddUser() { init(); User user = new User(); user.setUserName("memcached"); System.out.println(memcachedClient.set("user", user)); } }
打印出输出true表示成功。memcached的api什么的,自己去参考吧。
5、需要说明的是,如果向memcached添加对象的话,对象必须是序列化滴。。。
6、DEMO下载地址:http://download.csdn.net/detail/zhsj1106/4507631