maven spring 使用memcached方法
maven spring 使用memcached方法
KeepMoving 发表于3年前
maven spring 使用memcached方法
  • 发表于 3年前
  • 阅读 123
  • 收藏 1
  • 点赞 1
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 在上一篇《maven加载memcached方法》 主要是maven使用mem的配置,跟基本方法,这边记录一下spring使用mem的方法,由于踩到坑,所以记录学习一下。

maven配置mem的方法看maven加载memcached方法

memcached.properties:

#设置Memcached服务器参数
#设置服务器地址
memcached.server=127.0.0.1:11211
#容错
memcached.failOver=true
#设置初始连接数
memcached.initConn=20
#设置最小连接数
memcached.minConn=10
#设置最大连接数
memcached.maxConn=250
#设置连接池维护线程的睡眠时间
memcached.maintSleep=3000
#设置是否使用Nagle算法(Socket的参数),如果是true在写数据时不缓冲,立即发送出去
memcached.nagle=false
#设置socket的读取等待超时时间
memcached.socketTO=3000
#设置连接心跳监测开关
memcached.aliveCheck=true

applicationContext-memcached.xml:

<?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:jee="http://www.springframework.org/schema/jee"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"
    default-lazy-init="false" >
    <bean id="memCachedPool" class="com.whalin.MemCached.SockIOPool" factory-method="getInstance" init-method="initialize" destroy-method="shutDown" >
        <constructor-arg>
            <value>memCachedPool</value>
        </constructor-arg>
        <property name="servers">
            <list>
                <value>${memcached.server}</value>
            </list>
        </property>
        <property name="initConn">
            <value>${memcached.initConn}</value>
        </property>
            
        <property name="minConn">
            <value>${memcached.minConn}</value>
        </property>

        <property name="maxConn">
            <value>${memcached.maxConn}</value>
        </property>

        <property name="maintSleep">
            <value>${memcached.maintSleep}</value>
        </property>

        <property name="nagle">
            <value>${memcached.nagle}</value>
        </property>

        <property name="socketTO">
            <value>${memcached.socketTO}</value>
        </property>
    </bean>
    <bean id="memCachedClient" class="com.whalin.MemCached.MemCachedClient">
        <constructor-arg>
            <value>memCachedPool</value>
        </constructor-arg>
    </bean>
</beans>

注意:由于刚开始没有在

<bean id="memCachedPool" lazy-init="false"

中加入lazy-init="false" 提示SockIOPool 没有初始化,这个应该跟spring加载各模块的顺序有关,没有深究,可以查看问题:使用spring和memcached的困惑

java代码:

package com.nd.friend.component;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.whalin.MemCached.MemCachedClient;  

/**
 * memcached组件
 * 
 * 
 * @author kxn
 * @since 2015/02/25
 *
 */

@Component
public class MemcachedFactory {

    @Autowired
    BeanFactory beanFactory;

    public final MemCachedClient getInstance() {
        
        MemCachedClient memObj = null;
        memObj = (MemCachedClient) beanFactory.getBean("memCachedClient");
        if (memObj == null) {
            throw new RuntimeException("MemCachedClient is null....");
        }
        return memObj;
    }

}

使用:

import com.nd.friend.component.MemcachedFactory;
import com.whalin.MemCached.MemCachedClient; 
public class CommentController {
    @Autowired
    private MemcachedFactory memFactory;

    public void test(){
        MemCachedClient memObj = memFactory.getInstance();
        memObj.set("name", "kxn");  
        System.out.println(memObj.get("name"));// cache_1  
        System.out.println(memObj.get("name2"));// null  
    }
}

说明:代码中的improt的包 根据实际情况使用,这边记录以备忘学习

标签: maven spring memcached
共有 人打赏支持
粉丝 12
博文 20
码字总数 3503
×
KeepMoving
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: