باستخدام مصدر بيانات في صفحات متعددة مع حقن الموارد

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

سؤال

لدي godeaceticetagcode أريد استخدامها في عمليات متعددة.أنا لا أحب فكرة تحديد:

giveacodicetagpre.

في كل Servlet كما يبدو لي أن الإطار سيضطر إلى البحث عن مصدر البيانات لكل سيرف ولما إذا كان اسم التغييرات DataSource، فسيتعين على كل سيرف تغيير أيضا.

فكرتي هي إعلان Singleton EJB يمكن الإعلان عنها بعد ذلك في كل Servlet:

giveacodicetagpre.

هل هذه طريقة معقولة لحل المشكلة؟أشعر أنه من الممكن سمنيا بعض الشيء بالنسبة لشيء ما كنت أفكر ستكون مشكلة شائعة.

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

المحلول

بشكل عام، فهذه موافق IMO. ولكن من فضلك لا تدع الفول يعود الاتصال ولكن مباشرة مصدر البيانات. سيتم إغلاق بعض Appservers مثل WebSphere الاتصال تلقائيا عند ترك سياق الفول مرة أخرى.

حل آخر سيكون لاستخدام resource (الاسم="myds") بدلا من البحث. إذا كانت جميع عملياتك في تطبيق ويب واحد، فيمكنك تحديد مورد مرجع واحد مع Myds اسم REF-REF في Web.xml الخاص بك وحلها على اسم البحث الحقيقي فقط في هذا المكان فقط.

نصائح أخرى

أود أن أقول أن استخدام EJB فقط لهذا السبب قد يكون ثقيلا قليلا كما كتبت.

أولا معظم خوادم التطبيق الحديثة سوف ذاكرة التخزين المؤقت التي تبحث حتى لا يكون ذلك مكلفا.

ثانية - يمكنك استخدام Resource (الاسم="Myds") كما قال روبرت الذي سيستخدم نفس مرجع الموارد، والتي يمكن تعيينها إلى اسم JNDI باستخدام وظائف تعيين خادم التطبيقات.

الثالث - يمكنك استخدام CDI أن يكون لديك وحدة نمطية على الويب فقط مثل هذا:

إنشاء فئة تحمل تعريف مصدر البيانات الخاص بك مثل هذا:

giveacodicetagpre.

ثم استخدمها Servlet باستخدام حقن:

giveacodicetagpre.

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