سؤال

أنا تخطط لاستخدام الموزعة ذاكرة التخزين المؤقت في موازنة التحميل webapp.لذلك أنا ذاهب الى محاولة مجردة من الوظائف المشتركة بين أباتشي ehcache و أعطها.

هدفي هو أن تكون قادرة على جعل بسيطة التكوين التبديل إلى تحديد التخزين المؤقت إلى حل الاستخدام.يجب أن أذهب SPI الطريق مثلا ، مثل كيف موزعي XML يتم السلكية ؟

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

المحلول

من أعلى رأسي...

  • إنشاء واجهة مشتركة مع ذاكرة التخزين المؤقت ذات الأساليب (add () ، وإزالة(), refresh() يتبادر إلى الذهن الأكثر وضوحا منها).
  • إنشاء تطبيقات تلك الواجهة التي تستخدم المطلوب مخبأ تحت ("MyEhCacheImplementation" و "MyMemCachedImplementation" أو شيء من هذا القبيل).
  • إنشاء CacheFactory والتي ترجع بعض نوع من ذاكرة التخزين المؤقت على أساس قيمة بسيطة مثل عدد ، سلسلة أو التعداد.لا تنس أن تجعل تراجع عن تطبيق الافتراضي!
  • إنشاء طريقة لحقن أن قيمة واحدة إلى المصنع على التهيئة ، على سبيل المثال إذا كان لديك بعض الصف وهو يقرأ إعدادات مختلفة أثناء بدء التشغيل أو كنت تستخدم الربيع applicationContext.xml أو شيئا من هذا القبيل ، تحتاج إلى إنشاء طريقة التهيئة الخاص بك ذاكرة التخزين المؤقت الذي يأخذ في أن واحد المعلمة المكالمات المصنع ويعود النوع الصحيح من ذاكرة التخزين المؤقت و/أو مجموعات إلى مكان حيث كنت تستخدمه من قبل.

أعتقد أن هذا هو كل ما تحتاجه هيكليا للحصول عليه للعمل بشكل صحيح و حتى أن كنت يمكن أن تمتد كلما كنت أشعر بأن ذلك.

نصائح أخرى

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

وإلا لتحديد المواقع خدمة بسيطة وينبغي أيضا أن تفعل خدعة.

http://en.wikipedia.org/wiki/Service_locator_pattern

والربيع لديها أيضا وحدة مزود مخبأ التي لا بالضبط ما كنت تبحث القيام به. أنا فقط لم تكن متأكدا إذا تم دعم أعطها، وإن كان. حتى لو لم يكن كذلك، الكتابة محول لأنه قد يكون العمل أقل من اليد المتداول الواجهة الخاصة بك. انظر https://springmodules.dev.java.net/docs/ المرجع / 0.8 / html_single / # مخبأ

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