转载自:http://blog.csdn.net/zhsj1106/article/details/7877581
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添加对象的话,对象必须是序列化滴。。。