php java memcached_php和java的memcached使用的兼容性问题解决过程
4.0. 增加spymemcached依赖
net.spyspymemcached2.12.0
4.1. 配置memcached的ip地址
分别在dev,test,idc,prod的app-config.properties文件下添加memcached的ip地址:
dev,test:memcache_ip=192.168.1.10:11211
idc:memcache_ip=172.16.4.10:11211
prod:memcache_ip=172.16.0.10:11211
4.2. 配置memcached实例:
app-cached.xml文件增加:
4.3. 新增类SpringContextHolder
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 getBean(String name) {
checkApplicationContext();
return (T) applicationContext.getBean(name);
}
/** * * 从静态变量ApplicationContext中取得Bean, 自动转型为所赋值对象的类型. * * 如果有多个Bean符合Class, 取出第一个. */
@SuppressWarnings("unchecked") public static T getBean(Class 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");
}
}
}
4.4.增加MemcacheUtil
import com.test.bean.SpringContextHolder;import net.spy.memcached.MemcachedClient;
public class MemcacheUtil { public static MemcachedClient getMemCachedClient() { return SpringContextHolder.getBean("memcachedClient");}}
4.5 测试代码
public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext( "classpath:spring-memcached-spy.xml"); MemcachedClient client=MemcacheUtil.getMemCachedClient(); //MemcachedClient client =(MemcachedClient)context.getBean("memcachedClient"); Object obj=client.get("glt7hpcdi1ggo03l9qknu8a755"); System.out.println(obj); }
php java memcached_php和java的memcached使用的兼容性问题解决过程相关推荐
- php和java的memcached使用的兼容性问题解决过程
1. 背景: php 使用memcached客户端设置一个key,java使用java-memcached-client去读,报错如下: ERROR|com.whalin.MemCached.MemC ...
- Java面试题 java高级
八:java高级 1:代码优化 (1)代码优化的目标是: 1 .减小代码的体积 2 .提高代码运行的效率 (2)代码结构层次的优化(目的:更加方便代码的维护–可维护性,可读性) 1.代码注释(代码规范 ...
- very very good,Java面试宝典+Java核心知识集
这几天刚整理出炉的两份最全"Java面试宝典+Java核心知识集"(very very good!!!),因此有了今天咱这篇文章,没错,我又来分享干货了!!! Java面试宝典 说 ...
- java 读取txt,java读取大文件
java 读取txt,java读取大文件 package com.bbcmart.util; import java.io.File; import java.io.RandomAccessFile; ...
- JAVA基础(JAVA 执行环境) 第一天
JAVA程序有3中执行环境. (1)能够单独运行的程序,称为Java Application(Java应用程序). (2)在Internet浏览器中运行的程序,称为 Java Applet(JAVA小 ...
- java.utilDate和java.sql.Date
java.utilDate和java.sql.Date由广州疯狂软件教育java培训分享: java程序中的时间类型有java.util.Date和java.sql.Date两种.两者之间的关系和转化 ...
- java 终极超类,Java问答:终极父类(3),java问答
Java问答:终极父类(3),java问答Java问答:终极父类(上) Java问答:终极父类(下) Java问答:终极父类(2)-上篇 Java问答:终极父类(2)-下篇 在之前关于 Object ...
- java.lang.OutOfMemoryError: Java heap space错误及...
为什么80%的码农都做不了架构师?>>> 以下是从网上找到的关于堆空间溢出的错误解决办法: java.lang.OutOfMemoryError: Java heap spac ...
- 浅谈Java SE、Java EE、Java ME三者的区别
1. Java SE(Java Platform,Standard Edition).Java SE 以前称为 J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程 ...
最新文章
- 初中计算机flash操作,初中信息技术FLASH基础知识
- urlencode urldecode
- web项目发布时出现Deployment failure on Tomcat 7.x.
- Java中short、int、long、float、double的取值范围
- cf round480D Perfect Groups
- 配置grafana的数据源、添加监控
- java出现com.lowagie.text。DocumentException:字体“C: \ Windows \ \ simsun字体。带有'Identity-H'的ttc'不被识别的错误
- 如何修改文件格式(win11)
- Django ---uploads files
- 127.0.0.1 192.168 localhost 之间的区别
- Unity经典案例再现《太空大战》
- windows,打印机无打印任务,仍不断打印
- pythonsort参数_Python sort()函数有哪些参数?
- OSG路径漫游实现与应用
- XposedZjDroid脱壳梆梆加固
- 屏幕录制软件推荐,分享这3款,简单好用
- BUCK降压控制电路指南
- python tif格式的图片转换成其他格式
- 第六章 组合数据类型----元组
- 《UnityAPI.Vector2二维向量》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Vector2+Normalized+Lerp+Dot+立钻哥哥++OK++)
热门文章
- python文本分类评价指标 top1如何计算_python – Keras:如何计算多标签分类的准确......
- 计算机对应的自然科学,计算机类书稿加工应注意的几个问题
- mysql新建备份在哪里_navicat for MySQL创建备份计划的详细流程
- Java对象转JSON时如何动态的增删改查属性
- Oracle 被 4000 多名女性员工集体诉讼:因薪资比男性每年少 1.3 万美元
- 分库分表就能无限扩容吗,解释得太好了!
- 做diff_Vue3.0时代你必须了解的:diff算法原理和优化
- android 模拟点击localinstrumentation,Android Instrumentation模拟鼠标点击事件
- mysql8.0导出带数据的库表_MySQL8.0数据库导出与备份
- 设计模式之简介及其分类