سؤال

أنا أستخدم عبارة عن صيانة وخارجي للبحث عن قيم الملكية. بكل بساطة، يبدو الكود مثل هذا:

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

سؤالي عن الأداء. هل سيكون نهج التخزين المؤقت أسرع أو أفضل من الوصول إلى ملفات الممتلكات على ClassPath؟ فهمي هو أن أداء ResoutsBundle جيد للغاية بشكل عام.

ملف الخصائص (في هذه الحالة) أقل من 30 خطا (أي، ~ 30 أزواج المفتاح / القيمة).

أتساءل الأداء لأنه يمكننا استخدام نهج مماثل على صفحات عالية التحميل، وقد يثبت نهج البحث عند الطلب مكلفا.

هل كانت مفيدة؟

المحلول

بحسب ال جافادوكس:

مثيلات حزمة الموارد التي أنشأتها getBundle يتم تخزين طرق المصنع بشكل افتراضي، وطرق المصنع إرجاع نفس مثيل حزمة الموارد عدة مرات إذا تم تخزينها مؤقتا.

لذلك يجب أن لا تحتاج إلى القيام التخزين المؤقت لوحدك. ولكن إذا كنت بحاجة إلى سيطرة محتمة على سلوك التخزين المؤقت، يمكنك استخدام getBundle(String, ResourceBundle.Control) الزائد وتمر مخصص Control في.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top