来自外部jar问题的Spring UTF-8消息资源

我在Spring MVC应用程序中遇到UTF-8消息源的问题。 我已经尝试了AbstractMessageSource的两个实现:ResourceBundleMessageSource和ReloadableResourceBundleMessageSource。 我有一个带有i18n消息的外部jar,包含在com.mypackage.i18n包中

ResourceBundleMessageSource的配置:

    

此配置加载查找和加载属性,但因UTF-8而失败,因为此实现不支持UTF-8。

ReloadableResourceBundleMessageSource的配置:

       

此配置找不到属性。 我知道这个具有可重新加载资源的实现需要将属性放在WEB-INF目录中的某个位置,并且如果您不需要重新加载资源,它不会将资源限制在其他位置。 根据类java:

请注意,设置为“basenames”属性的基本名称的处理方式与ResourceBundleMessageSource的“basenames”属性略有不同。 它遵循不指定文件扩展名或语言代码的基本ResourceBundle规则,但可以引用任何Spring资源位置(而不是仅限于类路径资源)。 使用“classpath:”前缀,仍然可以从类路径加载资源,但在这种情况下,除“-1”(永久缓存)之外的“cacheSeconds”值将不起作用。

有人可以建议我如何解决问题:我需要使用另一种方法或以某种方式修改ReloadableResourceBundleMessageSource的配置来从jar中查找资源?

我找到了解决方案。 正确的ReloadableResourceBundleMessageSource配置如下所示: