Java ResourceBundle性能

Cho*_*ula 22 java performance resourcebundle

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

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

我的问题是关于表现.缓存方法比访问类路径上的属性文件更快还是更好?我的理解是,ResourceBundle的性能总的来说非常好.

属性文件(在这种情况下)少于30行(即,~30个键/值对).

我质疑性能,因为我们可以在高负载页面上使用类似的方法,并且按需查找方法可能证明是昂贵的.

Mic*_*ers 26

根据Javadocs:

getBundle默认情况下,工厂方法创建的资源包实例会被缓存,如果已缓存,则工厂方法会多次返回相同的资源包实例.

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