使用ehcache + Spring存储对象

时间:2010-12-08 08:48:21

标签: spring ehcache

我的应用程序具有所有表的国际化。所以所有的表都有另一个表用于不同的languange支持,其中key作为语言代码,如'en-us'。每次如果它命中数据库并在页面中显示,则应用程序变慢。所以我们通过扩展AbstractMessageSource类来实现。我引用了链接http://forum.springsource.org/showthread.php?t=15223但是基于这个存储的所有消息都存储在内存中。如果表的大小/表的数量增长,则这个消息散列也会增长。然后记忆问题来了。因此我们计划使用ehcache技术将其保存在磁盘中。请提供样品。让我知道这是存储对象的有效选项吗?

1 个答案:

答案 0 :(得分:0)

将DataSourceMessageSource中的Map条目更改为:

/ **缓存保持已生成的每个消息代码和区域设置的MessageFormats
   *地图

/ **每个语言环境的所有消息(所有基本名称)
   *地图

那会让你前进。您还需要一个带有以上每个缓存条目的ehcache.xml。你应该speefy overflowToDisk = true。

请注意,您将产生反序列化费用。如果你看到cpu的成本很高,那么重组代码可能值得返回你想要的而不是地图。

Greg Luck