سؤال

أرغب في إنشاء نافذة تحتوي على شريط تقدم يوضح الحالة الحالية لإنشاء مثيل لكائن Spring.من Spring.Net توثيق يبدو أن IObjectPostProcessors هي النقطة الصحيحة للبدء والتتبع كلما تم إنشاء كائن.ولكن من أجل الحصول على "النسبة المئوية للفصول التي تم إنشاء مثيل لها" أحتاج أن أسأل ObjectDefinitionCount من مصنع الربيع للحصول على عدد الكائنات التي تم تكوينها.ولكن هذا لا يعمل حتى يتم الانتهاء من إنشاء السياق (أيضًا هذه المشكلة يبدو أن المشكلة ذات صلة).

إذا لم يكن من الممكن استخدام Spring للحصول على حالة بدء التشغيل، فكيف يمكنك عرض المعلومات أثناء بدء التطبيق للمستخدم؟

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

المحلول

يمكنني أن أقدم لك حلاً بديلاً، على الرغم من أنه ليس مثاليًا، إلا أنه من المحتمل أن يكون تقديرًا جيدًا.

  • يمكنك استخدام آلية تخزين مستمرة (ملفات الخصائص، قاعدة البيانات، أيًا كان) لتتبع عدد الحبوب التي تم إنشاؤها.
  • يمكنك استخدام IObjectPostProcessors لتحديث عدد عمليات التهيئة
  • في الجولة الأولى، من الواضح أن القيمة ستكون 0
  • في عمليات التشغيل اللاحقة، يمكنك استخدام العدد الأخير ل تقدير عدد عمليات التهيئة التي يتعين القيام بها.

وبطبيعة الحال، هذا ليس دقيقا، ولكن ينبغي أن يوفر تقديرا جيدا في معظم الأوقات.

نصائح أخرى

والربيع يقرأ في التكوين في 2 خطوات - لأول مرة تتم قراءة جميع التعاريف كائن من التكوين والثانية تتم معالجة تلك التعريفات، instantiating سنغلتونس إذا لزم الأمر

.

ويجب أن تحصل على ما تريد من خلال تنفيذ IObjectFactoryPostProcessor. ObjectFactoryPostProcessors هي الأشياء الأولى التي تحصل على مثيل قبل أي شيء آخر. في هذا الوقت عدد من التعاريف الهدف من ذلك هو متاح بالفعل. باستخدام IObjectPostProcessor يعطيك معلومات حول كل كائن يتم إنشاء مثيل.

إذا كنت بعد الحصول على عدد من التعاريف كائن بالفعل في الوقت الذي يتم تحميل التكوين، واعتقد انه من الممكن، ولكن الربيع يقرأ التكوين في مسار واحد. كنت بحاجة للحصول على عدد من الكائنات باستخدام تقنية مختلفة.

وهته، إريك

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