Jak*_*kub 4 spring persistence internationalization
我会问是否知道一些"标准"方式如何保留消息,这些消息将在以后进行本地化.请注意,这还包括消息参数.例如,我在资源包中有代码"msg1"和1个参数的消息:
msg1 = Hello {0}
Run Code Online (Sandbox Code Playgroud)
我想将消息与一个对象关联起来,坚持下去.以后,不同的客户端会询问具有不同语言设置的对象.
obj.setDisplayMsg(msgSource.getMessage("msg1", "World", locale))
Run Code Online (Sandbox Code Playgroud)
我能想象:
谢谢
更新:目前,我们做了一些中途 - 我们将消息作为序列化消息对象存储在映射表中的单列中.我仍然完全满意 - 直接在数据库中查看数据是不可能的.
我不认为你的是一个非常普遍的需求,因此可能没有什么可用的.很确定Spring没有开箱即用.因此,选项3被丢弃.
1和2之间的决定主要是商业决策.想象一下,消息格式在持久化后会发生变化(例如由于某些错误).你现在想得到什么?可能是修正过的,只能通过选项1获得.
另一方面,如果您想将其保存为应用程序对用户说的内容的证明,则可以使用1和2(但在第一种情况下,您需要保存消息格式而不是其代码) .
在我看来,第一个选择是最好的.你不会那么担心它的性能,因为它可能不是你应用程序的瓶颈.也许消息和参数之间的多对多(而不是一对多)关系可以很好并且可以节省一些内存,但这不是主要目的.在参数表中,您可以存储一些额外的信息,例如参数的类型.这样,您可以轻松搜索,例如,msg1类型的所有消息或打印用户Jakub的消息(因为您存储了该用户类型的参数).
最后,永远不要在数据库中保存序列化对象.它们依赖于语言,您无法搜索它们,可能会出现版本问题......最重要的是,至少在这种情况下,您不需要它,因为最后所有参数都必须转换为字符串.
| 归档时间: |
|
| 查看次数: |
869 次 |
| 最近记录: |