يحتاج المشروع إلى الحصول على بيانات من مواقع الويب الأخرى لأنه مطلب مؤقت. لم أكن أتوقع أن تكون هناك حاجة إلى مصادر بيانات متعددة عند بدء تشغيل المشروع.
لذلك وجد Baidu أنه يحتاج فقط إلى تغيير ملف ApplicationContext.xml من Spring وكتابة ثلاث فئات الأدوات لتنفيذها بشكل مثالي.
ApplicationContext.xml
<!-تكوين مصدر multi-data-> <bean id = "ds1"> <property name = "driverClassName" value = "$ {jdbc.driverClassName}" /> <property name = "url" value = "$ {jdbc.url}" /> <property name = username /> </bean> <bean id = "ds2"> <property name = "driverClassName" value = "" /> <property name = "url" value = "" /> <property name = "username" value = "" /> <property name = "password" value = "" " DynamicDataSource.java في مشروعك <property name = "TargetDataSources"> <map key-type = "java.lang.String"> <intern بشكل افتراضي-> <property name = "defaultTargetDataSource" ref = "ds_admin"> </property> </bean>DatasourCeContextholder.java
الفئة العامة dataSourCeContextholder {private static final threadlocal <string> contexTholder = new threadlocal <string> () ؛ public static void setDbType (String dBtype) {contextholder.set (dbtype) ؛ } السلسلة الثابتة العامة getDbType () {return ((string) contexTholder.get ()) ؛ } public static void cleardbtype () {contextholder.remove () ؛ }} datasourcetype.java (تعيين متغيرات ثابتة)
الفئة العامة dataSourCeType {// Default Database Public Static Final String Source_admin = "DS1" ؛ .التالي هو DynamicDataSource.java ، وهو يرث الطريقة المجردة المحددة CurrentLookupKey في ArgtRactRoutingDataSource ، وهو جوهر تنفيذ مسار مصدر البيانات. هذه الطريقة يتم تجاوزها.
استيراد org.springframework.jdbc.datasource.lookup.abstractroutingDataSource ؛ فئة DynamicDataSource العامة يمتد ArgtRactractRoutingDataSource {Override الكائنات المحمية المحمية DentiveInecurrentOlkupKey () }}ما سبق هو تحليل لأمثلة استخدام SPRING MVC MyBatis Multi-Data Source الذي أدخله المحرر. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!