سؤال

لدي تطبيق منظم على النحو التالي:

  • داو
  • نطاق
  • الأساسية
  • خدمات
  • utils

لقد صنعت فئة تقرأ تكوين التطبيق من ملف XML. السؤال هو أين يجب وضعه؟

من خلال Reflex ، كنت قد وضعته في المرافق ولكن فئات الأدوات المساعدة لها طرق ثابتة وهي عديمية في حين تستخدم هذه الفئة مثيلًا لـ Apache Commons XmlConfiguration. هل يجب أن أتكيف الأساليب حتى يقتصر هذا المثيل على نطاقات الأساليب في هذه الفئة؟

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

المحلول

أفترض أن العناصر عبارة عن حزم ، لذلك سأذهب مع الأساسية صفقة.

  • داو
  • نطاق
  • الأساسية يحتوي على التطبيق وقراء التكوين الخاص به
    • تكوين
    • سجل
  • خدمات
  • utils

لماذا ا؟ يعد تكوين التطبيق ، سواء كان ذلك في XML أم لا ، وما إذا كان يعتمد على إطار تطبيق مثل الربيع أم لا ، جزءًا من وظائفه الرئيسية. يعد تشغيل التطبيق هو المسؤولية الرئيسية للتطبيق. يتم تنفيذ جميع وظائف الأعمال ، وجميع الميزات اللامعة التي توفرها في طبقات المجال والخدمة.

أنت على حق ، utils هو كل شيء عن أدوات ثابتة أو مماثلة. نظرًا لأن تكوين التطبيق أمر مهم للغاية ، فلن أعلن أنه أداة. الأداة المساعدة هي شيء يمكن استبداله بسهولة بأداة أخرى من نفس النوع (على سبيل المثال StringUtil ضد. StringUtils ضد. IOUtils الخ. جميعهم لديهم وظائف متشابهة للغاية)

نصائح أخرى

هذا يعتمد على نظام الإنشاء ونوع التطبيق الذي تستخدمه IG Maven الذي يقترحه وضع تكوينات في SRC/MAIN/الموارد

في ملف الحرب ، يمكنك وضعها في شبكة الويب أو الويب/التكوين

وفقًا لهيكل المشروع الخاص بك ، أقترح تقديم تكوين أو موارد مجلد ، لأن الجميع يتوقعونها تقريبًا.

إذا كنت تعمل مع الربيع ، ألق نظرة على أصحاب التكوين. يمكنك استخدام ملف خصائص Java بسيط لخصائص التكوين الخاصة بك ووضعه على مسار الفصل (أو أي موقع آخر). ALSOU يمكنك إنشاء تطبيقك الخاص لاستخدام نموذج مختلف من الحفاظ على قيم التكوين الخاصة بك (XML ، قاعدة البيانات وما إلى ذلك)

نظرًا لأن التكوين هو جانب متقاطع ، فإنه لا يخطط حصريًا لأحد هذه الطبقات. ضع ملفات التكوين (XML أو الخصائص) في ClassPath واستخدمها عبر Spring لتكوين الفاصوليا.

لبيانات التكوين القائمة على الخصائص propertyplaceholderConfigurer هو حل جيد.

أحثك على إلقاء نظرة على الربيع. قد يبدو وكأنه مبالغة بالنسبة لك في المقام الأول ، لكنك تحبها.

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