http缓存管理器_小心缓存管理器

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://www.mzph.cn/news/350109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cad线加粗怎么设置_AutoCAD2019怎么加粗线条 将不同线段加粗方法

AutoCAD2019是一款非常专业的制图软件&#xff0c;那有很多用户表示自己不知道这款软件怎么加粗线条&#xff0c;下面就通过这篇文章给大家介绍一下&#xff0c;一起往下看吧&#xff01;如图所示&#xff0c;我用L命令绘制一根线段&#xff1a;&#xff0c;这根线段的宽度为默…

时间管理——你不可不知的3种时间管理方法

时间管理——你不可不知的3种时间管理方法 时间管理 英文名:Time Management   请问&#xff0c;如果每天都有86400元进入你的银行户头&#xff0c;而你必须当天用光&#xff0c;你会如何运用这笔钱&#xff1f;   天下真有这样的好事吗&#xff1f;   是的&#xff0c;…

python tkinter布局混用_[宜配屋]听图阁

这篇文章主要介绍了python tkinter控件布局项目实例,文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下代码部分&#xff1a;from tkinter import *import tkinter.messagebox as messageboxclass Tkdemo():def __i…

ASP.NET中利用ashx实现图片防盗链

盗链的危害我就不说了&#xff0c;网上有很多。 直接分析盗链原理&#xff1a;看下面用httpwatch截获的http发送的数据 GET /Img.ashx?imgsvn_work.gif HTTP/1.1 Accept: */* Referer: http://www.svnhost.cn/ Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, def…

适用于Java开发人员的Elasticsearch:Java的Elasticsearch

本文是我们学院课程的一部分&#xff0c;该课程的标题为Java开发人员的Elasticsearch教程 。 在本课程中&#xff0c;我们提供了一系列教程&#xff0c;以便您可以开发自己的基于Elasticsearch的应用程序。 我们涵盖了从安装和操作到Java API集成和报告的广泛主题。 通过我们简…

matlab 日期排序_MATLAB时间序列的排序函数

sort功能&#xff1a;对时间序列x进行排序。格式&#xff1a;m sort(x, mode) % 当参数mode‘ascend’&#xff0c;表示对x进行升序重排&#xff1b;当mode‘descend’&#xff0c;表示降序重排wrev功能&#xff1a;得到时间序列x的逆序。格式&#xff1a;m wrev(x)如>>…

c标签foreach遍历list_遍历 Dictionary,你会几种方式?

一&#xff1a;背景 1. 讲故事昨天在 StackOverflow 上看到一个很有趣的问题&#xff0c;说: 你会几种遍历字典的方式&#xff0c;然后跟帖就是各种奇葩的回答&#xff0c;挺有意思&#xff0c;马上就要国庆了&#xff0c;娱乐娱乐吧&#xff0c;说说这种挺无聊的问题???。二…

[HDU 4666]Hyperspace[最远曼哈顿距离][STL]

题意: 许多 k 维点, 求这些点之间的最远曼哈顿距离. 并且有 q 次操作, 插入一个点或者删除一个点. 每次操作之后均输出结果. 思路: 用"疑似绝对值"的思想, 维护每种状态下各点的计算值, 插入或删除一个点就更新一次每种状态(用 multiset 或 map 或 priority_queue 实…

过滤器匹配符包含单词_Hamcrest包含匹配器

过滤器匹配符包含单词与Hamcrest 1.2相比 &#xff0c;针对Matchers类的Hamcrest 1.3 Javadoc文档为该类的几种方法添加了更多文档。 例如&#xff0c;四个重载的contains方法具有更具描述性的Javadoc文档&#xff0c;如下面所示的两个比较屏幕快照所示。 尽管仅通过尝试就可以…

linux配置4g网络命令_树莓派移动网络连接(配置4G网卡)

1、识别上网卡使用命令lsusb&#xff0c;如果能够识别则可以继续往下。2、安装网卡驱动程序上网卡一般都会带有2个功能&#xff0c;一个是虚拟光驱&#xff0c;用来安装驱动程序&#xff1b;另一个是进行网络连接的modem。在Linux下&#xff0c;需要安装usb-modeswitch驱动程序…

Hibernate 配置详解(5)

9) hibernate.batch_fetch_style: 该配置是hibernate4.2.0新添加的&#xff0c;使用这个设置可以配置hibernate在做batch-fetch的时候&#xff0c;生成SQL的策略。该配置项的可选值为org.hibernate.loader.BatchFetchStyle这个枚举类型中的可选值。所以&#xff0c;目前有三个选…

使用HazelCast进行休眠缓存:JPA缓存基础知识

HazelCast的最大功能之一就是对hibernate二级缓存的支持 。 JPA具有两个级别的缓存。 一级缓存在事务期间缓存对象的状态。 通过查询相同的对象两次&#xff0c;您必须获得第一次获取的对象。 但是&#xff0c;在包含您检索到的对象并访问数据库的复杂查询的情况下&#xff…

mvcc原理_Mysql MVCC实现原理

本文中用到的概念解释数据读取特性不可重复读指一个事务范围内两个相同的查询却返回了不同数据这是由于查询时系统中其他事务修改的提交而引起的幻读在两个连续的查找之间一个并发的修改事务修改了查询的数据集&#xff0c;导致这两个查询返回了不同的结果这是由于查询时系统中…

java数组复制的方式和效率比较

java中&#xff0c;数组的复制有以下三种方式&#xff1a; 1. 调用System.arraycopy&#xff08;Arrays.copyOfRange可以当作第四种&#xff0c;但是底层调用的是System.arraycopy&#xff0c;所以&#xff0c;认为是同一种&#xff0c;下面是Arrays.copyOfRange的方法实现&…

Java命令行界面(第18部分):JCLAP

Giles Winstanley的JCLAP &#xff08; Java命令行参数解析器 &#xff09;是基于Java的命令行处理库的系列文章中介绍的第18个库。 这篇文章的示例基于需要Java 8的 JCLAP 1.4 。 JCLAP主页上指出&#xff1a;“ JCLAP帮助Java开发人员为其应用程序创建易于使用的命令行界面。…

数据拆分_数据拆分,偏方请拿好

小伙伴们好啊&#xff0c;今天老祝和大家分享一个比较特殊的数据拆分实例。先来看一组数据&#xff1a;这是一些从系统中导出的数据&#xff0c;一个序号后面连接一个姓名&#xff0c;但是现在都挤在了一个单元格里。咱们要把这些数据变成下面的效果&#xff1a;接下来&#xf…

sql文字转换全拼_取汉字全拼的SQL函数

/*根据汉字获取全拼1.生成所有读音临时表2.根据Chinese_PRC_CS_AS_KS_WS 排序获取读音*/CREATE function f_GetPinYin(str varchar(100))returns varchar(8000)asbegindeclare re varchar(8000)--生成临时表declare t table(chr nchar(1) collate Chinese_PRC_CS_AS_KS_WS,py n…

jaxb入门_JAXB教程–入门

jaxb入门注意&#xff1a;请查看我们的Java XML绑定JAXB教程– ULTIMATE指南 什么是JAXB&#xff1f; JAXB代表用于XML绑定的Java体系结构。它用于将XML转换为java对象&#xff0c;并将java对象转换为XML。JAXB定义了一个用于在XML文档中读写Java对象的API。与SAX和DOM不同&am…

P2863 [USACO06JAN]牛的舞会The Cow Prom

题目描述 The N (2 < N < 10,000) cows are so excited: its prom night! They are dressed in their finest gowns, complete with corsages and new shoes. They know that tonight they will each try to perform the Round Dance. Only cows can perform the Round D…

call需要多大带宽 video_LTE杂谈之IMS voice 和video call流程

pan >SIP Message Logged Bytes 1951Message ID IMS_SIP_INVITEResponse Code INFORMAL_RESPONSE (0)CM Call ID 2SIP Call ID 842064754_23544448882409:8804:8000:186e:9fb:f711:a6d6:ead会话标识&#xff0c;整个流程不变Sip Message INVITEtel:10086;phone-context…