في الآونة الأخيرة ، هناك العديد من الأشخاص الذين يتشاورون مع كيفية تكوين مصادر بيانات متعددة لفصل الربيع ، والرد عليها واحدًا تلو الآخر أمر مزعج ، والتكوين في منشورات المدونة السابقة يمثل أيضًا مشكلة ، لذلك سأصدر عرضًا تجريبيًا للجميع.
هناك مصدران للبيانات في العرض التجريبي ، وهما MySQL و Oracle ، وتم إجراء اختبارات بسيطة. لا توجد مشكلة في تبديل مصادر البيانات ديناميكيًا. آمل أن يساعد هذا العرض التوضيحي الجميع.
عنوان التنزيل التجريبي:
Spring Switch Multi-Data Demo Demo: http://xiazai.vevb.com/201701/yuanma/dynamicdatasourcedemo_jb51.rar
سأقدم أيضًا بعض التفسيرات لشرح النقاط الرئيسية عند تكوين مصدر البيانات المتعددة:
1. انتبه إلى تكوين اعتراض المعاملات
هذه هي الأولوية الأولى. بادئ ذي بدء ، تحتاج إلى فهم أن إدارة معاملات الربيع مرتبطة بمصدر البيانات. بمجرد تنفيذ البرنامج إلى طبقة إدارة المعاملات (مثل الخدمة) ، حيث تم فتح المعاملة من خلال التقاطع قبل إدخال هذه الطبقة ، لا يمكن تبديل مصدر البيانات في هذه الطبقة. من المهم بشكل خاص فهم مبدأ المعاملات. في مقالتي السابقة ، من الصعب تكوين اعتراض لتبديل مصدر البيانات في طبقة DAO (لأنه مثال ، أنا مهمل وأعتذر عن مضللة الجميع) ، لكن الأفكار المقدمة ليست مشكلة.
في العرض التوضيحي ، يتم تكوين مصادر البيانات التي تقوم بتبديل مصادر البيانات على الطبقة السابقة من اعتراض المعاملة (TXAdvice) ، أي طبقة وحدة التحكم.
2. انتبه لإنشاء جداول قاعدة البيانات
يحب بعض الأشخاص استخدام وظيفة إنشاء الجدول التلقائي لـ Hibernate ، ولكن تجدر الإشارة إلى أنه في مصادر بيانات متعددة ، وخاصة في مصادر بيانات متعددة لقواعد البيانات المختلفة ، لا يمكن إنشاء جداول تلقائيًا. نظرًا لأن إنشاء الجدول التلقائي لـ Hibernate يتم تشغيله عند بدء تشغيل المشروع ، يتم إنشاء جداول لمصدر البيانات الافتراضي الذي تم تكوينه بواسطة المشروع ، بينما لا يتم إنشاء جداول لمصادر البيانات الأخرى تلقائيًا. يجب على الجميع الانتباه.
3. يمكن تجاهل لهجة قاعدة بيانات kibernate
عندما تكون مصادر بيانات متعددة ، يمكن تجاهل إعدادات اللهجة. سوف يتعرف Hibernate تلقائيًا على قواعد بيانات مختلفة عند استخدامها ، لذلك لا داعي للقلق بشأن هذا التكوين ، ومن الممكن عدم تكوينه.
4. الإبلاغ عن أي خطأ في الجلسة الحالية
هذا ناتج عن استخدام sessionfactory.getCurrentsession (). الجلسة الحالية مرتبطة بالخيط. سيفتح مؤشر ترابط جلسة واحدة فقط (لن يكون هناك خطأ إلا إذا كنت تستخدم OpenSession ()). لذلك ، يجب تعيين العلاقة الملزمة بين الجلسة والموضوع.
يستخدم العرض التوضيحي Spring لإدارة جلسة Hibernate ، لذلك تم تكوين OpenSessionInViewFilter في web.xml ، ويتم تكوين Current_session_context_class في hibernate.cfg.xml. [PS: عند استخدام Spring لإدارة Hibernate ، يمكنك إزالة hibernate.cfg.xml ، وملفات التكوين لجميع الربيع المكونة هي HibernateProperties. تعتمد على التفضيلات الشخصية]
أخيرًا ، يتم دمج بعض الأطر ببساطة في العرض التوضيحي ، وهي مريحة للجميع لاستخدامها. إنها فائدة للجميع. لن أشرح تكوين وتكنولوجيا تلك الأطر هنا. إذا كنت تريد أن تعرف ، يمكنك التحقق من العنوان:
تكوين مصدر SPRING Multi-Data: //www.vevb.com/article/102282.htm
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.