gtlib 发表于 2015-11-18 13:31:59

memcached和spring集成

  memcached和spring集成(主要说spring和memcached的集成,spring本身的东东就不多说啦)
  本文demo下载http://download.iyunv.com/detail/zhsj1106/4507631
  接上篇 :在linux服务器上安装memcachedhttp://blog.iyunv.com/zhsj1106/article/details/7877542
  1、添加jar包,下载地址:http://www.kuaipan.cn/file/id_7845608170131203.htm
  2、新建spring配置文件,配置内容如下:
  

<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>
<beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:aop=&quot;http://www.springframework.org/schema/aop&quot;
xmlns:tx=&quot;http://www.springframework.org/schema/tx&quot;
xsi:schemaLocation=&quot;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&quot;
default-autowire=&quot;autodetect&quot; default-lazy-init=&quot;false&quot;>
<bean id=&quot;sockIOPool&quot; class=&quot;com.danga.MemCached.SockIOPool&quot;
factory-method=&quot;getInstance&quot; init-method=&quot;initialize&quot; destroy-method=&quot;shutDown&quot;>
<constructor-arg>
<value>neeaMemcachedPool</value>
</constructor-arg>
<property name=&quot;servers&quot;>
<list>
<value>${memcache.server}</value>
</list>
</property>
<property name=&quot;initConn&quot;>
<value>${memcache.initConn}</value>
</property>
<property name=&quot;maxConn&quot;>
<value>${memcache.maxConn}</value>
</property>
<property name=&quot;maintSleep&quot;>
<value>${memcache.maintSleep}</value>
</property>
<property name=&quot;nagle&quot;>
<value>${memcache.nagle}</value>
</property>
<property name=&quot;socketTO&quot;>
<value>${memcache.socketTO}</value>
</property>
</bean>
<bean id=&quot;memcachedClient&quot; class=&quot;com.danga.MemCached.MemCachedClient&quot;>
<constructor-arg>
<value>neeaMemcachedPool</value>
</constructor-arg>
<property name=&quot;compressEnable&quot;>
<value>true</value>
</property>
<property name=&quot;compressThreshold&quot;>
<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 = { &quot;spring/applicationContext.xml&quot;,
&quot;spring/applicationContext-memcache.xml&quot;};
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(
&quot;memcachedClient&quot;);
}
public void testAdd() {
init();
System.out.println(memcachedClient.set(&quot;memcached&quot;, &quot;memcachedtest&quot;));
}
public void testAddUser() {
init();
User user = new User();
user.setUserName(&quot;memcached&quot;);
System.out.println(memcachedClient.set(&quot;user&quot;, user));
}
}

  打印出输出true表示成功。memcached的api什么的,自己去参考吧。
  5、需要说明的是,如果向memcached添加对象的话,对象必须是序列化滴。。。
  6、DEMO下载地址:http://download.iyunv.com/detail/zhsj1106/4507631
  
  









版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: memcached和spring集成