使用 Spring 框架在 Web 应用程序中解析 UI 消息和提供内部化支持的不同方法有哪些?
我们使用属性文件和 ResourceBundleMessageSource 来解析 Spring 中的消息。Spring 的实现在我们的应用程序中导致了高 CPU 使用率。ResourceBundleMessageSource 实现存在两个问题。
- 锁定争用 - getResourceBundle() 和 getMessageFormat() 都是同步的。
- MissingResourceException - 解析消息涉及遍历应用程序中定义的所有资源包并调用 bundle.getString(key)。如果未找到密钥,bundle.getString(key) 方法调用将引发 MissingResourceException。搜索密钥,直到找到给定密钥的消息。由于异常构造是一个缓慢的过程,并且可能会占用 CPU(这是我在负载测试中观察到的),这看起来像是一个瓶颈。
尽管上述两个问题都有解决方法(通过扩展类和覆盖行为),但我想知道 Spring 框架中是否还有其他方法可以为 Web 应用程序提供国际化支持。
提前致谢