http缓存管理器

如果使用spring和JPA,则很有可能利用ehcache(或其他缓存提供程序)。 您可以在两种不同的情况下进行此操作:JPA 2级缓存和spring方法缓存。

配置应用程序时,通常会设置JPA提供程序的二级缓存提供程序(在我的情况下为Hibernate),并且还使用“缓存”名称空间配置spring。 一切正常,您将继续进行该项目。 但是有一个警告。 如果采用最直接的方法,则会得到两个单独的缓存管理器,它们加载相同的缓存配置文件。 从本质上来说,这还不错,但是要考虑一下–您是否真的需要两个缓存管理器,以及由此可能引起的问题?

可能你不知道。 因此,您必须摆脱冗余管理器。 为此,您需要将spring缓存管理器设置为共享:

<bean id='ehCacheManager'class='org.springframework.cache.ehcache.EhCacheManagerFactoryBean'><property name='shared' value='true' />
</bean>

这意味着spring不会创建新的缓存管理器实例,而是将重用hibernate已经创建的实例。 现在,这里需要考虑一些问题-这取决于bean创建的顺序–是将JPA工厂bean还是缓存管理器工厂bean放在首位。 幸运的是,这与最终结果无关紧要,因为SingletonEhCacheRegionFactory如果找到现有实例,则会重用现有的缓存管理器实例。

因此,现在您已将缓存管理器设置为jvm-singleton。 但是,如果您部署了多个应用程序并且正在使用JMX,则可能会遇到另一个问题。 高速缓存管理器将自身注册为JMX Bean。 但是,当您有单身人士时,多个应用程序将尝试多次注册同一缓存管理器,这将失败。 结果将是日志中有几个例外,并且无法控制多个模块的缓存管理器。 如果您使用Terracotta之类的东西,则会出现相同问题的副作用(缓存管理器的身份很重要)。 幸运的是,您可以轻松解决此问题。 只需向上面显示的bean定义添加一个属性:

<property name='cacheManagerName' value='${module.name}' />

${module.name}是使用PropertyPlaceholderConfigurer解析的PropertyPlaceholderConfigurer并且可以针对每个${module.name}应用程序进行配置,因此每个Web应用程序可以具有不同的模块名称。 这样,可以通过JMX以指定的名称访问缓存管理器。

总体而言,请谨慎使用缓存管理器。 即使在使用不同的缓存,jpa和DI提供程序的情况下,也应验证上述方案。

参考:在Bozho的技术博客博客中, 请注意我们JCG合作伙伴 Bozhidar Bozhanov的 缓存管理器 。

翻译自: https://www.javacodegeeks.com/2013/01/be-careful-with-cache-managers.html

http缓存管理器

http缓存管理器_小心缓存管理器相关推荐

  1. 计算机多媒体教室维修登记册,专用教室管理制度_专用教室管理制度范文

    专用教室管理制度_专用教室管理制度范文 专用教室管理制度篇3 多媒体教室管理制度 1.多媒体教室的装备,是学校现代化教学设施之一,有专职人员负责管理,充分使用,倍加爱护. 2.室内的所有设备,应按统一 ...

  2. 打开文件管理器_大批量图纸管理的贴心助手好管家,参照管理器,你值得拥有...

    原创:就说我在开发区 趣说CAD,让枯燥生动起来. 参照管理器 在开始今天的内容之前,先来看一则沃兹尼亚克对乔布斯在推出iPad过程中所起作用的评价. 沃兹尼亚克何许人也,能评价乔布斯当然也非无名之辈 ...

  3. 致远a8-v5-6.0协同管理软件_易达酒吧管理软件下载-易达酒吧管理软件v10.0免费版...

    易达酒吧管理软件顾名思义是一款功能强大,专业实用的优秀酒店管理软件,软件根据服务性行业实际管理要求打造,软件具有会员销售.退还.存款.禁用(挂失.作废.临时禁用)等功能,相当的实用. 基本简介 易达酒 ...

  4. 清空计算机网络缓存,【缓存清理工具】缓存清理软件_电脑缓存清理软件【最新】-太平洋电脑网...

    Windows7系统清理dns缓存失败解决方法介绍 在win7纯净版系统中有时候,发现网络突然变得很慢,甚至没有网络,怎么回事呢?可能是dns缓存导致的,这时候可以清理dns缓存尝试解决问题.但是有朋 ...

  5. mysql缓存淘汰机制_聊聊缓存淘汰算法-LRU 实现原理

    前言 我们常用缓存提升数据查询速度,由于缓存容量有限,当缓存容量到达上限,就需要删除部分数据挪出空间,这样新数据才可以添加进来.缓存数据不能随机删除,一般情况下我们需要根据某种算法删除缓存数据.常用淘 ...

  6. 前端协商缓存强缓存如何使用_强制缓存和协商缓存有什么区别

    1.背景介绍 做前端有两个比较令人头痛的事,一个是命名,另一个就是缓存了.HTTP协议提供了非常强大的缓存机制, 了解这些缓存机制,对提高网站的性能非常有帮助. 2.知识剖析 什么是浏览器缓存 浏览器 ...

  7. spring 两次进入拦截器_过滤器和拦截器的 6 个区别,别再傻傻分不清了

    点击上方 肉眼品世界,选择 设为星标 深度价值体系传递 作者 :程序员内点事 来源 :toutiao.com/i6834310440495874563 毕竟这两种工具开发中用到的频率都相当高,应用起来 ...

  8. java 解析器_高性能Java解析器实现过程详解

    如果你没有指定数据或语言标准的或开源的Java解析器, 可能经常要用Java实现你自己的数据或语言解析器.或者,可能有很多解析器可选,但是要么太慢,要么太耗内存,或者没有你需要的特定功能.或者开源解析 ...

  9. 多项式朴素贝叶斯分类器_多项式朴素贝叶斯分类器的主题预测

    多项式朴素贝叶斯分类器 In Analytics Vidhya, Hackathon, there was a problem statement for text prediction of top ...

最新文章

  1. Java中的多线程总结
  2. 福布斯2021年十大最佳人工智能硕士课程,清华、港大入选
  3. [BZOJ 1098] [POI2007] 办公楼biu 【链表优化BFS】
  4. [BUUCTF-pwn]——picoctf_2018_buffer overflow 0
  5. 基于顺序存储结构的图书信息表的图书去重(C++)
  6. java多线程采集+线程同步-【多线程数据采集之四】
  7. sqlite expert 未找到提供程序。该程序可能未正确安装_SolidWorks2019安装过程中出现常见问题及解决方案...
  8. 如何查看数据库是否是rac,如何查看数据库是否是单实例
  9. 法兰克机械手手动操作_吸盘搬运机械手,一步解决玻璃搬运难题!
  10. C# vs MySql
  11. C#学习(二十八)——ManualResetEvent的理解和使用
  12. webpack 拾翠:充分利用 CommonsChunkPlugin()
  13. 《Dead Cells》,通过3D工具制作2D动画
  14. 十个设计师必备网站,解决你设计的所有难题
  15. JLINK仿真器来仿真调试mini2440
  16. 【分享】如何自动同步企业微信外部客户信息到CRM系统?
  17. (8)香橙派+apache2与php+天猫精灵=自建平台语音支持--天猫精灵对接3
  18. Arcmap制图调色
  19. 2.2 PB-ADV入网过程
  20. Redis五大数据结构的类型的使用

热门文章

  1. 漫画:什么是计数排序
  2. 你知道面试官是如何刷人的吗
  3. Spring Boot 最佳实践
  4. 为什么Netty这么火?与Mina相比有什么优势?
  5. Shell入门(六)之算术运算
  6. 请用JavaScript实现一个函数,接受一-个IP白名单列表whitelist以及列表ipList
  7. 【Android布局】控件布置
  8. 《白鹿原》金句摘抄(五)
  9. 有一种陪伴不在身边,却在心间
  10. mysql引擎总结_MySQL存储引擎对比总结