天天看点

Spring集成spymemcached

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>&lt;?</code><code>xml</code> <code>version</code><code>=</code><code>"1.0"</code> <code>encoding</code><code>=</code><code>"UTF-8"</code><code>?&gt;</code>

<code>&lt;</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"&gt;</code>

<code>    </code><code>&lt;</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>&gt;</code>

<code>        </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"servers"</code> <code>value</code><code>=</code><code>"#{configproperties['memcached.server.url']}"</code> <code>/&gt;</code>

<code>        </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"protocol"</code> <code>value</code><code>=</code><code>"BINARY"</code> <code>/&gt;</code>

<code>        </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"transcoder"</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>bean</code> <code>class</code><code>=</code><code>"net.spy.memcached.transcoders.SerializingTranscoder"</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"compressionThreshold"</code> <code>value</code><code>=</code><code>"1024"</code> <code>/&gt;</code>

<code>            </code><code>&lt;/</code><code>bean</code><code>&gt;</code>

<code>        </code><code>&lt;/</code><code>property</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"opTimeout"</code> <code>value</code><code>=</code><code>"1000"</code> <code>/&gt;</code>

<code>        </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"timeoutExceptionThreshold"</code> <code>value</code><code>=</code><code>"2000"</code> <code>/&gt;</code>

<code>        </code><code>&lt;!-- 这是一个坑:&lt;property name="hashAlg" value="KETAMA_HASH"/&gt;--&gt;</code>

<code>        </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"hashAlg"</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>value</code> <code>type</code><code>=</code><code>"net.spy.memcached.DefaultHashAlgorithm"</code><code>&gt;KETAMA_HASH&lt;/</code><code>value</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"locatorType"</code> <code>value</code><code>=</code><code>"CONSISTENT"</code> <code>/&gt;</code>

<code>        </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"failureMode"</code> <code>value</code><code>=</code><code>"Redistribute"</code> <code>/&gt;</code>

<code>        </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"useNagleAlgorithm"</code> <code>value</code><code>=</code><code>"false"</code> <code>/&gt;</code>

<code>    </code><code>&lt;/</code><code>bean</code><code>&gt;</code>

<code>&lt;/</code><code>beans</code><code>&gt;</code>

Spring的配置文件:config-service.xml

<code>&lt;</code><code>bean</code> <code>class</code><code>=</code><code>"com.digitalchina.security.interceptor.ToKenCheckInterceptor"</code> <code>&gt;</code>

<code>                    </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"memcachedClient"</code> <code>ref</code><code>=</code><code>"memcachedClient"</code> <code>/&gt;</code>

<code>                </code><code>&lt;/</code><code>bean</code><code>&gt;</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