- 浏览: 543062 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (278)
- freemarker (6)
- flex应用 (12)
- Ext应用 (11)
- 软件 (16)
- java (61)
- 报表 (6)
- 框架基础 (6)
- 登录页面素材 (7)
- oracle (1)
- cas (10)
- lucene (6)
- linux (11)
- 视频 (10)
- springmvc (3)
- 视频服务器相关 (12)
- 开发工具 (7)
- IOS (20)
- 网站相关 (4)
- Java 任务调度系统带图形界面的 (1)
- maven (2)
- android (29)
- hadoop (3)
- SpagoBI (3)
- docx4j (4)
- 多线程 (2)
- storm (2)
- mobile 框架 (3)
- scala (1)
- socket (1)
- saiku (1)
最新评论
-
ZXCLTN:
1.streams目录,在里面放些flv,mp3之类的文件,这 ...
red5 整合到tomcat中(二) -
ZXCLTN:
写的没偷没尾的,还不如提供整个项目下载
red5 整合到tomcat中(二) -
01jiangwei01:
测试方法1:测试50个线 ...
hibernate 乐观锁 测试 -
01jiangwei01:
测试方法1:测试50个线程,同时并发访问。目标:只有一个通过, ...
hibernate 乐观锁 测试 -
xiaobadi:
你每次登陆都是跳到http://localhost:8081/ ...
cas 系统实例 服务端配置(二) 自定义登录
今天闲来无事,因为工作中要用到缓存,这里决定使用Memcache,所以利用周末,在家里做了个demo,发表出来希望对大家有用。
1, 开始肯定是下载需要的文件了,这里就下载附件里的文件就好,我也是在网上down的,放这好找。然后我们安装一下Memcache服务器,找到解压的memcached-1.2.1-win32,启动cmd ,进入解压目录,输入命令 D
:\memcached-1.2.6-win32\memcached.exe -d install.
然后再键入命令'D:\memcached\memcached.exe -d start'
启动,这样memcache就会作为windows系统服务在每次开机时启动memcache服务。
2,下面我们开始在使用java进行配置开发。添加Spring功能。在web.xml中添加配置。
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:/spring/applicationContext-common.xml, classpath:/spring/spring-memcache.xml </param-value> </context-param>
3,在src下新建spring目录,并新建applicationContext-common.xml和spring-memcache.xml。内容分别如下。
applicationContext-common.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:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:memcache.properties</value> <value>classpath:jdbc.properties</value> </list> </property> </bean> <bean id="springContextHolder" class="com.hxrainbow.crm.util.SpringContextHolder"/> </beans>
spring-memcache.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:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="memcachedPool" class="com.danga.MemCached.SockIOPool" factory-method="getInstance" init-method="initialize" destroy-method="shutDown"> <property name="servers"> <list> <value>${memcache.server}</value> </list> </property> <property name="initConn"> <value>${memcache.initConn}</value> </property> <property name="minConn"> <value>${memcache.minConn}</value> </property> <property name="maxConn"> <value>${memcache.maxConn}</value> </property> <property name="maintSleep"> <value>${memcache.maintSleep}</value> </property> <property name="nagle"> <value>${memcache.nagle}</value> </property> <property name="socketTO"> <value>${memcache.socketTO}</value> </property> </bean> <bean id="memcachedClient" class="com.danga.MemCached.MemCachedClient"> </bean> </beans>
在配置文件中我们会看到memcache.properties,jdbc.properties和springContextHolder。
他们的内容分别是:
memcache.properties memcache.server=127.0.0.1:11211 memcache.initConn=20 memcache.minConn=10 memcache.maxConn=50 memcache.maintSleep=3000 memcache.nagle=false memcache.socketTO=3000
jdbc.properties
import java.util.Map; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; /** * * 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonContext. **/ public class SpringContextHolder implements ApplicationContextAware { private static ApplicationContext applicationContext; /** * * 实现ApplicationContextAware接口的context注入函数, 将其存入静态变量. */ public void setApplicationContext(ApplicationContext applicationContext) { SpringContextHolder.applicationContext = applicationContext; } /** * * 取得存储在静态变量中的ApplicationContext. */ public static ApplicationContext getApplicationContext() { checkApplicationContext(); return applicationContext; } /** * * 从静态变量ApplicationContext中取得Bean, 自动转型为所赋值对象的类型. */ @SuppressWarnings("unchecked") public static <T> T getBean(String name) { checkApplicationContext(); return (T) applicationContext.getBean(name); } /** * * 从静态变量ApplicationContext中取得Bean, 自动转型为所赋值对象的类型. * * 如果有多个Bean符合Class, 取出第一个. */ @SuppressWarnings({ "unchecked", "rawtypes" }) public static <T> T getBean(Class<T> clazz) { checkApplicationContext(); Map beanMaps = applicationContext.getBeansOfType(clazz); if (beanMaps != null && !beanMaps.isEmpty()) { return (T) beanMaps.values().iterator().next(); } else { return null; } } private static void checkApplicationContext() { if (applicationContext == null) { throw new IllegalStateException( "applicaitonContext未注入,请在applicationContext.xml中定义SpringContextHolder"); } }
配置文件我们写完了,下面我们开始测试使用。
做Bean类
import java.io.Serializable; public class Bean implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String toString() { String bean = "{name:"+this.getName()+",age:"+this.getAge()+"}"; return bean; } }
做测试使用类:
import java.util.ArrayList; import java.util.List; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import com.danga.MemCached.MemCachedClient; import com.danga.MemCached.SockIOPool; public class MemcacheUtilTest { public static void main(String[] args) { ApplicationContext ctx = new FileSystemXmlApplicationContext(new String[]{"src/spring/spring-memcache.xml","src/spring/applicationContext-common.xml"}); SockIOPool s =SpringContextHolder.getBean("memcachedPool"); System.out.println("s="+s.getInitConn()); MemCachedClient mc = (MemCachedClient) ctx.getBean("memcachedClient"); //开始设值 mc.set("name", " string "); mc.set("int", 5); mc.set("double", 5.5); Bean bean = new Bean(); bean.setAge(21); bean.setName("名字"); mc.set("bean", bean); List<Bean> data = new ArrayList<Bean>(); for(int i=0;i<3;i++) { Bean xbean = new Bean(); xbean.setAge(i); xbean.setName("test_"+i); data.add(xbean) ; } mc.set("data", data); try{ Thread.sleep(50); //开始取值 String name =(String) mc.get("name"); int i = (Integer) mc.get("int"); double d = (Double) mc.get("double") ; Bean b = (Bean) mc.get("bean") ; data = (List<Bean>) mc.get("data") ; System.out.println("字符串:"+name); System.out.println("数字型:"+i); System.out.println("双精度:"+d); System.out.println("bean toString :"+b.toString()); System.out.println("data toString :"+data.toString()); //开始删除值 System.out.println("开始删除 :》》》》》》》》》"); mc.delete("name"); mc.delete("int"); mc.delete("double"); mc.delete("bean"); String name_d =(String) mc.get("name"); int i_d = (Integer) mc.get("int"); double d_d = (Double) mc.get("double") ; Bean b_d = (Bean) mc.get("bean") ; System.out.println("字符串:"+name_d); System.out.println("数字型:"+i_d); System.out.println("双精度:"+d_d); System.out.println("bean toString :"+b_d.toString()); }catch(Exception e){ e.printStackTrace(); } } }
运行一下,看看结果吧。具体可参考java_memcached-release_1.6\doc\HOWTO.txt.注意Bean要实现序列化。
- java_memcached-release_1.6.zip (245.3 KB)
- 下载次数: 291
- memcached-1.2.1-win32.zip (89 KB)
- 下载次数: 128
发表评论
-
AESUtils
2018-01-17 14:13 519import java.io.UnsupportedEnc ... -
lbs比较两点坐标
2018-01-16 09:56 0int distance = (int) (S2LatLng. ... -
java ftp上传文件
2017-12-25 10:43 601工具类: import org.apache.c ... -
redis应用方法
2017-11-30 11:47 5621:统计一段时间内,某 ... -
风控系统1
2017-10-12 18:40 650... -
可以保持session的java代码片段
2017-07-12 21:04 661import java.io.File; impor ... -
ubuntu 搭建开发环境
2015-06-16 15:39 0jdk 可以参看其他网站; export JAVA_HO ... -
主线程等待10秒钟,无应答返回(一)
2015-06-05 15:26 2519场景需求: 其他应用向我们的应用A发来请求,如果应用 ... -
drools书籍
2015-03-13 18:23 970附件中有drools书籍 -
一个Tomcat支持不同的域名访问各自不同程序的配置方法
2015-03-11 09:56 563更多信息可以参考网址:http://329937021.i ... -
netty5 包简读
2015-02-13 18:16 0io.netty.bootstrap; 启动器i ... -
netty5 入门翻译
2015-02-12 18:01 867翻译网页网址:http://n ... -
spring-jms
2015-01-12 11:45 722这里写篇文章记录一下jms持久化到mysqlde 使用方 ... -
git 命令大全
2014-11-12 10:03 718git 学习网址http://git-scm.com/bo ... -
groovy eclipse 插件
2014-10-06 16:58 741eclipse version 4.4.0 groovy ... -
docx4j word 工具类及测试类
2014-10-02 22:14 1550import java.io.ByteArrayInputS ... -
docx4j 替换文本
2014-09-29 11:25 1481采用docx4j 替换word模板内容,并输出进行保存 ... -
docx4j 动态生成表格 (一 )
2014-09-28 19:18 1833使用docx4j模板动态制作表格代码实现过程(一 ),模 ... -
java 开发的各种例子
2014-08-13 17:55 648springmvc + springsecurity 实 ... -
tomcat 根项目部署方式
2014-07-08 09:50 591<Host name="admin.yid ...
相关推荐
标题“Spring与memcached整合”涉及的是在Java开发环境中如何将Spring框架与memcached缓存系统相结合使用,以便提升应用程序的性能和响应速度。这里我们将深入探讨这一整合过程中的关键概念和技术。 首先,...
本文将深入探讨如何将Spring与Memcached整合,以及如何使用Spring Cache注解实现缓存功能。 首先,我们需要理解Spring Cache的基本概念。Spring Cache是一个抽象层,它允许我们在不依赖特定缓存实现的情况下使用...
这篇文章将详细介绍如何将Spring与Memcached整合,帮助新手入门这一技术栈。 首先,我们需要理解Spring整合Memcached的目的。在高并发的Web应用中,缓存可以显著提升性能,减少数据库的负载。Memcached因其简单高效...
虽然MyBatis本身不支持缓存,但可以通过Spring的缓存抽象层与Memcached进行整合。在MyBatis的Mapper接口方法上使用Spring的Cache注解,实现查询结果的缓存。 8. **性能优化**: 使用Memcached需要注意缓存穿透、...
不过,具体这些文件如何与SSM(Spring、SpringMVC、MyBatis)和memcached整合的细节,需要参考实际的项目代码。 通过这样的整合,我们可以充分利用Spring Cache的便捷性和memcached的高性能,为应用程序构建一个...
SSM与Memcached整合是一个常见的Java Web开发技术组合,用于提升应用的性能和可扩展性。SSM是指Spring、Spring MVC和MyBatis三个框架的集成,而Memcached则是一种高性能、分布式内存对象缓存系统。这个项目是将这三...
此工程为 springMVC+memcached整合 项目。 resources\config\memcached.xml为 memcached配置文件。test\cn\sky\tian\test\spring为Demo的路径。 (里面有个src\cn\sky\tian\test\controller路径是MengoDB的demo,也...
标题中的"spring+memcached.jar"表明这是一个整合了Spring框架与Memcached缓存服务的Java应用程序。Memcached是一种广泛使用的分布式内存对象缓存系统,它能够通过减轻数据库负载来提高Web应用的性能。Spring框架是...
java Memcached客户端代码,整合到Spring,提供Util工具类 代码片段: public class MemcachedUtils { private static boolean setExp(String key, Object value, Date expire) { boolean flag = false; try { ...
在这个项目中,我们将探讨如何将Spring与memcached缓存系统进行整合,以提高应用程序的性能和响应速度。Memcached是一款高性能、分布式内存对象缓存系统,用于临时存储中间结果或频繁访问的数据,从而减轻数据库的...
ssm3-mybatis2-memcached 使用了 simple-...ssm3-springcache-mybatis3-memcached 通过 Spring Cache(Spring 3.1+) 实现 simple-spring-memcached 和 MyBatis3 整合。 simple-spring-memcached 使用了 JSON 序列化。
Simple-Spring-Memcached(SSM)是一个流行的缓存框架,它整合了Spring框架与Memcached,提供了一种统一的方式来处理缓存操作。本文将详细介绍如何在实际应用中使用SSM进行统一缓存管理,并分享在规划和配置过程中...
从【压缩包子文件的文件名称列表】"hibernate-memcached-master"来看,这可能是项目的根目录,暗示着项目中可能包含了一套完整的配置和实现,用于将Hibernate与Memcached整合。具体可能包括以下部分: 1. **配置...
3. **整合Spring AOP与Memcached**: - 在Spring应用中,可以创建一个自定义的切面来处理数据缓存。例如,当一个服务方法被调用时,首先检查请求的数据是否已经在Memcached中,如果存在则直接返回,否则从数据库...
现在我们来看看如何将Memcached整合到SSM中: 1. 安装和配置Memcached:首先,你需要在服务器上安装和运行Memcached服务。这通常涉及到下载Memcached,配置启动参数,并通过命令行启动服务。 2. 添加依赖:在SSM...
SSM整合Memcached是将Spring、Spring MVC和MyBatis这三大Java Web开发框架与Memcached内存缓存系统相结合的过程,以提升应用的性能和响应速度。Memcached是一款高性能、分布式内存对象缓存系统,广泛用于减轻数据库...
MyBatis-Spring整合后,可以利用Spring的事务管理功能,简化数据库操作。 4. Memcached:Memcached是一个基于键值对的缓存系统,适合存储小块的、临时的数据。在Web应用中,它可以缓存数据库查询结果,减少数据库...
spring boot 实践学习案例,与其它组件结合如 mybatis、jpa、dubbo、redis、mongodb、memcached、kafka、rabbitmq、activemq、elasticsearch、security、shiro等 #### Spring Boot 版本 - 2.0.3.RELEASE #### 模块...