Java ResourceBundle 性能
-
11-09-2019 - |
题
我正在使用 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
在。
不隶属于 StackOverflow