spring中整合memcached,以及创建memcache的put和get方法:

1:在项目中导入memcache相关的jar包

2:memcache在spring.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- XMemcachedClientFactoryBean工厂配置-->
<bean id="memcachedClient" class="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean">
<property name="servers" value="${memcache.servers}"/>
<property name="weights" value="${memcache.servers.weight}"/>
<property name="sessionLocator">
<bean class="net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator"/>
</property>
<property name="transcoder">
<bean class="net.rubyeye.xmemcached.transcoders.SerializingTranscoder"/>
</property>
<property name="bufferAllocator">
<bean class="net.rubyeye.xmemcached.buffer.SimpleBufferAllocator"/>
</property>
</bean>
<!--自己封装的api类-->
<bean class="com.floor.shop.map.MemcachedAccess">
<property name="memcachedClient" ref="memcachedClient"/>
</bean>
</beans>

3:memcache在db.properties中的配置:

4:在spring的主配置文件中引入memcache的相关配置:

5:自己封装好的memcache方法(get(),   put(),  flushAll() )

 package com.floor.shop.map;

 import net.rubyeye.xmemcached.MemcachedClient;
import net.rubyeye.xmemcached.exception.MemcachedException; import java.util.concurrent.TimeoutException; public class MemcachedAccess {
private MemcachedClient memcachedClient;
/*
* 将memcachedClient交给spring管理
* (就需提供下面的get和set方法)
*/
public MemcachedClient getMemcachedClient() {
return memcachedClient;
} public void setMemcachedClient(MemcachedClient memcachedClient) {
this.memcachedClient = memcachedClient;
} /*
* memcache基于HashMap所以通过key,value的形式放值和取值。
* memcachedClient提供了add方法进行放值,add方法需要传递三个参数String var1, int var2, Object var3
* 分别表示:var1:key; var2:缓存的时间; var3:key对应的值
* 对外提供put方法往memcache里面放值:
*/
public boolean put(String key, Integer time, String value) {
try {
boolean add = memcachedClient.add(key, time, value);
return add;
} catch (TimeoutException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (MemcachedException e) {
e.printStackTrace();
}
return false;
} /*
*如果把时间写成死的数据:1天,就不需要传时间进来
* memcache的缓存时间是以秒为单位,默认缓存好像是一个月。
*/
public boolean put(String key , String value) {
try {
boolean add = memcachedClient.add(key, 1*24*60, value);
return add;
} catch (TimeoutException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (MemcachedException e) {
e.printStackTrace();
}
return false;
} /*
* 对外提供取值的get方法
*/
public String get(String key){
try {
String value = (String)memcachedClient.get(key);
return value;
} catch (TimeoutException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (MemcachedException e) {
e.printStackTrace();
}
return null;
} //对外提供清除所有缓存的方法:
public void flushAll(){
try {
memcachedClient.flushAll();
} catch (TimeoutException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (MemcachedException e) {
e.printStackTrace();
}
} }

spring中整合memcached,以及创建memcache的put和get方法的更多相关文章

  1. Spring中常见的bean创建异常

    Spring中常见的bean创建异常 1. 概述     本次我们将讨论在spring中BeanFactory创建bean实例时经常遇到的异常 org.springframework.beans.fa ...

  2. Spring中整合Titles

    在<Spriing实战(第三版)>这本书中,有一个使用titles的例子,但是这是一个不完整的例子.那么要参照起来就比较难了,于是找到了下面这篇博客. 在Spring中使用tiles2 ( ...

  3. 玩转Spring MVC(五)----在spring中整合log4j

    在前边的基础上,本文主要总结一下如何在spring 中配置log4j,在本文末尾会给出完整项目的链接. 首先是web.xml中要新添加的代码: <!-- 6. 配置log4j --> &l ...

  4. Spring中初始化bean和销毁bean的时候执行某个方法的详解

    关于在spring  容器初始化 bean 和销毁前所做的操作定义方式有三种: 第一种:通过注解@PostConstruct  和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 ...

  5. spring中整合ssm框架注解版

    和xml版差不多,只不过创建对象的方式是由spring自动扫描包名,然后命名空间多一行context代码在application.xml中,然后将每个对象通过注解创建和注入: 直接上代码: 1.use ...

  6. Spring实战(五)Spring中条件化地创建bean

    1.@Conditional 为生成bean设置条件 Spring 4中引入了一个新的注解---@Conditional,它用在有@Bean的方法上. 如果给定条件计算结果为true,Spring会创 ...

  7. Spring中整合Cage,实现验证码功能

    1.pom.xml中添加Cage依赖. <dependency> <groupId>com.github.cage</groupId> <artifactId ...

  8. 对 spring 中默认的 DataSource 创建进行覆盖

    配置如下 /** * Primary:标识为主配置,将默认的配置覆盖掉 * ConfigurationProperties:设置配置来源 * * @return DataSource */ @Prim ...

  9. Spring框架中整合JUnit单元测试的方法

    一. 步骤: 1. 拷贝jar包: 1. JUnit-4.9.jar和spring-test-4.2.4.RELEASE.jar ; 2. 替换原来的main函数: 1. 在测试类上使用注解方式替换: ...

随机推荐

  1. 10张图带你深入理解Docker容器和镜像

    http://dockone.io/article/783 [编者的话]本文用图文并茂的方式介绍了容器.镜像的区别和Docker每个命令后面的技术细节,能够很好的帮助读者深入理解Docker. Doc ...

  2. 百度地图API:自定义控件

    HTML: <!DOCTYPE html> <html> <head> <meta name="viewport" content=&qu ...

  3. CF1080F Katya and Segments Sets

    题意:给定n个区间,每个区间有颜色.m次询问,每次询问:这n个区间中所有被包含在[x, y]这一区间中的区间,它们的颜色是否取遍了[l, r]中的所有颜色. 强制在线. 解:第一步是大家都熟悉的套路⑧ ...

  4. MVC相关问题归纳

    问题: 1.How MVC pattern flows 2.对象模型.关系模型 3.OR Framework 4.EF(Entity FrameWork)实体框架 5.模型驱动数据数据驱动模型的两种方 ...

  5. undefined is not an object(evaluating '_react3.default.PropTypes.shape)

    手机红屏报这个错时的解决办法: npm uninstall --save react-native-deprecated-custom-components npm install --save ht ...

  6. Could not install the app on the device, read the error above for details. Make sure you have an Android emulator running or a device connected and have set up your Android development environment:

    Administrator@DESKTOP-EHCTIOR MINGW64 /d/react-native-eyepetizer (master) $ react-native run-android ...

  7. 第三篇-Django建立数据库各表之间的联系(下)

    中篇介绍的是添加,下篇主要介绍查询 通过一个Book表的书的信息查询Publish表中出版社的信息 def addbook(request): # Book.objects.create(name=& ...

  8. TODO java 作业-梭哈--待完成

    作业:定义一个类,该类用于封装一桌梭哈游戏,这个类应该包含桌上剩下的牌的信息,并包含5个玩家的状态的信息,他们各自的位置,游戏状态(正在游戏或已放弃),手上已有的牌等信息.如果有可能,这个类还应该实现 ...

  9. javascript(基础)_对数组的遍历方法总结(find, findIndex, forEach,)

    一.前言                                                                                                ...

  10. OpenDayLight——HelloWorld

    OpenDayLight——HelloWorld 既然学习OpenDayLight编程这个鬼,就得像学语言一样来一个HelloWorld来试试水,经过几天的折腾,总算成功输出HelloWorld了,这 ...