我正在使用 ResourceBundle 和 Locale 来查找属性值。很简单,代码如下所示:

  public static String getPropertyValue(Locale locale, String resourceName, String key) {
    ResourceBundle resource = ResourceBundle.getBundle(resourceName, locale);
    return resource.getString(key);
  }

我的问题是关于性能的。与访问类路径上的属性文件相比,缓存方法是否会更快或更好的实现?我的理解是,ResourceBundle 的性能总体来说非常好。

属性文件(在本例中)少于 30 行(即约 30 个键/值对)。

我对性能提出质疑,因为我们可以在高负载页面上使用类似的方法,而按需查找方法可能成本高昂。

有帮助吗?

解决方案

根据 Java文档:

创建的资源包实例 getBundle 工厂方法默认会被缓存,如果已缓存,工厂方法会多次返回同一个资源包实例。

所以你不需要自己做缓存。但如果您需要对缓存行为进行更细粒度的控制,您可以使用 getBundle(String, ResourceBundle.Control) 重载并传递自定义的 Control 在。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top