日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/3 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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缓存管理器_小心缓存管理器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。