Spring集成spymemcached
Memcached的安装部署我就不介绍了!
首先下载spymemcached,下载地址:
jar:https://spymemcached.googlecode.com/files/spymemcached-2.10.3.jar
javadoc:https://spymemcached.googlecode.com/files/spymemcached-2.10.3-javadoc.jar
源码:https://spymemcached.googlecode.com/files/spymemcached-2.10.3-sources.jar
Spring的配置文件:config-cache.xml
<code><?</code><code>xml</code> <code>version</code><code>=</code><code>"1.0"</code> <code>encoding</code><code>=</code><code>"UTF-8"</code><code>?></code>
<code><</code><code>beans</code> <code>xmlns</code><code>=</code><code>"http://www.springframework.org/schema/beans"</code>
<code> </code><code>xmlns:xsi</code><code>=</code><code>"http://www.w3.org/2001/XMLSchema-instance"</code> <code>xmlns:aop</code><code>=</code><code>"http://www.springframework.org/schema/aop"</code>
<code> </code><code>xmlns:tx</code><code>=</code><code>"http://www.springframework.org/schema/tx"</code>
<code> </code><code>xsi:schemaLocation="http://www.springframework.org/schema/beans</code>
<code> </code><code>http://www.springframework.org/schema/beans/spring-beans.xsd</code>
<code> </code><code>http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd</code>
<code> </code><code>http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"></code>
<code> </code><code><</code><code>bean</code> <code>id</code><code>=</code><code>"memcachedClient"</code> <code>class</code><code>=</code><code>"net.spy.memcached.spring.MemcachedClientFactoryBean"</code><code>></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"servers"</code> <code>value</code><code>=</code><code>"#{configproperties['memcached.server.url']}"</code> <code>/></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"protocol"</code> <code>value</code><code>=</code><code>"BINARY"</code> <code>/></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"transcoder"</code><code>></code>
<code> </code><code><</code><code>bean</code> <code>class</code><code>=</code><code>"net.spy.memcached.transcoders.SerializingTranscoder"</code><code>></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"compressionThreshold"</code> <code>value</code><code>=</code><code>"1024"</code> <code>/></code>
<code> </code><code></</code><code>bean</code><code>></code>
<code> </code><code></</code><code>property</code><code>></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"opTimeout"</code> <code>value</code><code>=</code><code>"1000"</code> <code>/></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"timeoutExceptionThreshold"</code> <code>value</code><code>=</code><code>"2000"</code> <code>/></code>
<code> </code><code><!-- 这是一个坑:<property name="hashAlg" value="KETAMA_HASH"/>--></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"hashAlg"</code><code>></code>
<code> </code><code><</code><code>value</code> <code>type</code><code>=</code><code>"net.spy.memcached.DefaultHashAlgorithm"</code><code>>KETAMA_HASH</</code><code>value</code><code>></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"locatorType"</code> <code>value</code><code>=</code><code>"CONSISTENT"</code> <code>/></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"failureMode"</code> <code>value</code><code>=</code><code>"Redistribute"</code> <code>/></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"useNagleAlgorithm"</code> <code>value</code><code>=</code><code>"false"</code> <code>/></code>
<code> </code><code></</code><code>bean</code><code>></code>
<code></</code><code>beans</code><code>></code>
Spring的配置文件:config-service.xml
<code><</code><code>bean</code> <code>class</code><code>=</code><code>"com.digitalchina.security.interceptor.ToKenCheckInterceptor"</code> <code>></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"memcachedClient"</code> <code>ref</code><code>=</code><code>"memcachedClient"</code> <code>/></code>
<code> </code><code></</code><code>bean</code><code>></code>
Spring的源码:
<code>@Component</code>
<code>public</code> <code>class</code> <code>ToKenCheckInterceptor </code><code>extends</code> <code>AbstractWebServiceInterceptor </code><code>implements</code> <code>InitializingBean {</code>
<code> </code><code>public</code> <code>static</code> <code>final</code> <code>String CSP_USER_SECURITY_CONTEXT_KEY = </code><code>"CSP_USER_SECURITY_CONTEXT_KEY"</code><code>;</code>
<code> </code><code>public</code> <code>static</code> <code>final</code> <code>int</code> <code>HTTP_STATUS_INSUFFICIENT_USER_LEVEL = </code><code>431</code><code>;</code>
<code> </code><code>@Autowired</code>
<code> </code><code>private</code> <code>MemcachedClient memcachedClient;</code>
<code> </code>
<code> </code><code>public</code> <code>void</code> <code>setMemcachedClient(MemcachedClient memcachedClient) {</code>
<code> </code><code>this</code><code>.memcachedClient = memcachedClient;</code>
<code> </code><code>}</code>
<code> </code><code>。。。 。。。</code>
本文转自 梦朝思夕 51CTO博客,原文链接:
http://blog.51cto.com/qiangmzsx/1413649