كيف يمكنني استخدام ResourceBundle لتجنب مسارات التكوين المتشددين في تطبيقات Java؟

StackOverflow https://stackoverflow.com/questions/154728

  •  03-07-2019
  •  | 
  •  

سؤال

أرغب في القضاء على التبعيات على مسارات متشددين لبيانات التكوين في تطبيقات Java الخاصة بي ، وأنا أفهم أن استخدام ResourceBundle سيساعدني على استخدام جهاز تحميل الصنف للعثور على الموارد.

هل يمكن لأحد أن يخبرني كيف سأستبدل مسارًا متشددًا إلى مورد (على سبيل المثال ملف بيانات تكوين. مثال واضح بسيط إن أمكن ، شكرًا للجميع.

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

المحلول

قبل Java 6 ، عادة ما يسمح ResourceBundle:

  • سلاسل من مجموعة من ملفات الخصائص المترجمة ، باستخدام PropertyResourceBundle
  • كائنات من مجموعة من الفئات المحلية ، باستخدام ListresourceBundle

Java 6 يأتي مع ResourceBundle.Control الفئة التي تفتح الباب أمام مصادر أخرى من bundbundles ، على سبيل المثال:

  • ملفات XML (انظر المثال 2 في Javadoc)
  • صفوف قاعدة البيانات

أتمنى أن يساعدك هذا.

نصائح أخرى

سوف تريد الفحص Resource.getBundle (سلسلة). تقوم بتمرير اسم مورد مؤهل بالكامل على ClassPath لتحميله كملف خصائص.

لا تحتاج إلى ResourceBundle. يمكن لكائن الخصائص البسيطة القيام بالمهمة. ما عليك سوى استخدام ClassLoader للحصول على ملف inputStream لملف خصائصك واستخدامه لتحميل قيم DE. إذا كنت بحاجة إلى التعامل مع تكوينات المستخدم أكثر تطوراً ، فاستخدم ملف تفضيلات API.

أطيب التحيات

الخدعة وراء Resource.getBundle (..) هي استخدام classloader. يمكنك تحميل كل شيء في ClassPath الخاص بك عن طريق الوصول إليه عبر this.getClass (). getClassLoader (). Resource.getBundle (..) هو مساعد عملي لاستخدامه في موضوع الموارد/تحديد موقعه.

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