我正在使用最新版本的Spring Framework和Hibernate。我知道如何创建MessageSource的自定义版本。但是什么是服务i18n消息的最佳方式。因为如果每次应用程序需要国际化时我都会查询数据库,那么它将导致数据库的大量流量,并且通常查询将为相同的查询返回相同的答案。
我想了解实施此方法的好方法吗?将所有消息存储到内存中的好方法或有效提供消息的最佳方式是什么?
答案 0 :(得分:2)
因为如果每次应用程序需要国际化时我都会查询数据库,那么它将导致数据库的大量流量,并且通常查询将为相同的查询返回相同的答案。
考虑使用L2缓存和查询缓存。代表i18n消息的实体似乎是缓存的良好候选者。看看
答案 1 :(得分:1)
如果您只讨论静态消息,将所有内容存储到内存中是可以接受的。对于高级解决方案,您可以考虑使用像ehcache这样的缓存框架,它可以很好地与spring集成,但根据您要缓存的数据量以及在特定条件下清除它的必要性,可能会有些过分。