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

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

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

2:memcache在spring.xml的配置:

代码:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xsi:schemaLocation="http://www.springframework.org/schema/beans
 5 http://www.springframework.org/schema/beans/spring-beans.xsd">
 6     <!-- XMemcachedClientFactoryBean工厂配置-->
 7     <bean id="memcachedClient" class="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean">
 8         <property name="servers" value="${memcache.servers}"/>
 9         <property name="weights" value="${memcache.servers.weight}"/>
10         <property name="sessionLocator">
11             <bean class="net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator"/>
12         </property>
13         <property name="transcoder">
14             <bean class="net.rubyeye.xmemcached.transcoders.SerializingTranscoder"/>
15         </property>
16         <property name="bufferAllocator">
17             <bean class="net.rubyeye.xmemcached.buffer.SimpleBufferAllocator"/>
18         </property>
19     </bean>
20     <!--自己封装的api类-->
21     <bean class="com.floor.shop.map.MemcachedAccess">
22         <property name="memcachedClient" ref="memcachedClient"/>
23     </bean>
24 </beans>

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

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

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

 1 package com.floor.shop.map;
 2
 3 import net.rubyeye.xmemcached.MemcachedClient;
 4 import net.rubyeye.xmemcached.exception.MemcachedException;
 5
 6 import java.util.concurrent.TimeoutException;
 7
 8 public class MemcachedAccess {
 9     private MemcachedClient memcachedClient;
10     /*
11      * 将memcachedClient交给spring管理
12      * (就需提供下面的get和set方法)
13      */
14     public MemcachedClient getMemcachedClient() {
15         return memcachedClient;
16     }
17
18     public void setMemcachedClient(MemcachedClient memcachedClient) {
19         this.memcachedClient = memcachedClient;
20     }
21
22     /*
23      *   memcache基于HashMap所以通过key,value的形式放值和取值。
24      *   memcachedClient提供了add方法进行放值,add方法需要传递三个参数String var1, int var2, Object var3
25      *   分别表示:var1:key;  var2:缓存的时间; var3:key对应的值
26      *   对外提供put方法往memcache里面放值:
27      */
28     public boolean put(String key, Integer time, String value) {
29         try {
30             boolean add = memcachedClient.add(key, time, value);
31             return add;
32         } catch (TimeoutException e) {
33             e.printStackTrace();
34         } catch (InterruptedException e) {
35             e.printStackTrace();
36         } catch (MemcachedException e) {
37             e.printStackTrace();
38         }
39         return false;
40     }
41
42     /*
43      *如果把时间写成死的数据:1天,就不需要传时间进来
44      * memcache的缓存时间是以秒为单位,默认缓存好像是一个月。
45      */
46     public boolean put(String key , String value) {
47         try {
48             boolean add = memcachedClient.add(key, 1*24*60, value);
49             return add;
50         } catch (TimeoutException e) {
51             e.printStackTrace();
52         } catch (InterruptedException e) {
53             e.printStackTrace();
54         } catch (MemcachedException e) {
55             e.printStackTrace();
56         }
57         return false;
58     }
59
60     /*
61      * 对外提供取值的get方法
62      */
63     public String get(String key){
64         try {
65             String value = (String)memcachedClient.get(key);
66             return value;
67         } catch (TimeoutException e) {
68             e.printStackTrace();
69         } catch (InterruptedException e) {
70             e.printStackTrace();
71         } catch (MemcachedException e) {
72             e.printStackTrace();
73         }
74         return null;
75     }
76
77     //对外提供清除所有缓存的方法:
78     public void flushAll(){
79         try {
80             memcachedClient.flushAll();
81         } catch (TimeoutException e) {
82             e.printStackTrace();
83         } catch (InterruptedException e) {
84             e.printStackTrace();
85         } catch (MemcachedException e) {
86             e.printStackTrace();
87         }
88     }
89
90 }

原文地址:https://www.cnblogs.com/dw3306/p/9341956.html

时间: 2024-11-03 20:55:46

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

Spring中整合Titles

在<Spriing实战(第三版)>这本书中,有一个使用titles的例子,但是这是一个不完整的例子.那么要参照起来就比较难了,于是找到了下面这篇博客. 在Spring中使用tiles2 (因为是英文的,同时又是比较简单的英文,那么就翻译一下,当作学习) 在这个例子中,你将学会怎样整合Spring和Tiles2.这个例子的目录结构如下: 添加下面的库文件到库目录,(当然如果是在Eclipse中就是对应的lib文件夹了). 01.antlr-runtime-3.0 02.commons-loggi

Spring中常见的bean创建异常

Spring中常见的bean创建异常 1. 概述     本次我们将讨论在spring中BeanFactory创建bean实例时经常遇到的异常 org.springframework.beans.factory.BeanCreationException,下面我们将讨论并再现这些异常,同时给出解决方案. 2. Cause:org.springframework.beans.factory.NoSuchBeanDefinitionException     到目前为止最常见的导致BeanCreat

Spring MVC整合Memcached基于注释的实践使用

本文并不介绍memcached的安装使用,也不长篇大论哪个缓存框架性能好.而是结合自己实际开发,来谈谈自己的使用. 一.配置文件application-cache.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.or

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

在前边的基础上,本文主要总结一下如何在spring 中配置log4j,在本文末尾会给出完整项目的链接. 首先是web.xml中要新添加的代码: <!-- 6. 配置log4j --> <!--6.1 配置加载log4j.xml文件路径 --> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/classes/spring

在Spring中整合JUnit单元测试

一 简介 在Java Web开发中,通常我们会开发很多的功能代码.在代码正式使用之前,为了确保代码能够正确实现我们预期的功能,最好是添加一些简单代码对代码逻辑进行测试.很显然,JUnit就是一个不错的单元测试工具,同时在Spring中我们也可以很方便地引入JUnit进行测试 二 代码实例 (1)引入必需的jar包: 这里除了Spring以及其他模块所需要的jar包之外,还需要引入: spring-test-4.2.3.RELEASE.jar junit-4.10.jar 注:jar包版本使用最新

maven项目,在spring中整合mybatis

一.pom.xml配置,导入所需jar包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&quo

在Spring中使用注解(@Scheduled)创建计划任务

Spring3中加强了注解的使用,其中计划任务也得到了增强,现在创建一个计划任务只需要两步就完成了: 创建一个Java类,添加一个无参无返回值的方法,在方法上用@Scheduled注解修饰一下: 在Spring配置文件中添加三个<task:**** />节点: 最后说明一下,第一步创建的Java类要成为Spring可管理的Bean,可以直接写在XML里,也可以@Component一下 示例如下 计划任务类: /** * com.zywang.spring.task.SpringTaskDemo

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

1.pom.xml中添加Cage依赖. <dependency> <groupId>com.github.cage</groupId> <artifactId>cage</artifactId> <version>1.0</version> </dependency> 项目相关资料:https://akiraly.github.io/cage/quickstart.html . 2.Controller:@Re

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

配置如下 /** * Primary:标识为主配置,将默认的配置覆盖掉 * ConfigurationProperties:设置配置来源 * * @return DataSource */ @Primary @Bean @ConfigurationProperties("spring.datasource") public DataSource dataSource() { return DataSourceBuilder.create().build(); } 原文地址:https: