Das Projekt muss Daten von anderen Websites erhalten, da es sich um eine vorübergehende Anforderung handelt. Ich habe nicht erwartet, dass beim Starten des Projekts mehrere Datenquellen benötigt werden.
Daher stellte Baidu fest, dass es nur die ApplicationContext.xml -Datei von Spring ändern und drei Werkzeugklassen schreiben muss, um sie perfekt zu implementieren.
applicationContext.xml
<!-Multi-Data-Quellkonfiguration-> <bean id = "ds1"> <Eigenschaft name = "triverClassName" value = "$ {jdbc.driverClassName}" /> <Eigenschaft name = "url" value = "$ {jdbc.url}} < value = " /> < /bean> <bean id =" ds2 "> <Eigenschaft name =" triverClassName "value =" " /> <Eigenschaft name =" url "value =" " /> <Eigenschaft name =" userername "value =" " /> <Eigenschaft name =" passwesen "value DynamicDataSource.java In Ihrem Projekt <Eigenschaft name = "targetDataSources"> <MAP-Schlüsseltyp = "java.lang.String"> <Eintragswert-ref = "ds_admin" key = "DS1"> </Eintrag> </Eintrags-REF = "DS_PARTNER" DS2 = "DS2"> </</MABEL. StandardmäßigDataSourceContextHolder.java
public class DataSourceContextHolder {private statische endgültige ThreadLocal <String> contextHolder = new ThreadLocal <string> (); public static void setdbType (String dBType) {contextHolder.set (dBType); } public static String getDbType () {return ((String) contexHolder.get ()); } public static void clearDbType () {contextHolder.remove (); }} DataSourcetype.java (statische Variablen festlegen)
public class DataSourcetype {// Standarddatenbank öffentliche statische endgültige String -Quelle_Admin = "DS1"; // Die zweite Datenbank, ID in applicationContext.xml public static Final String Source_Partner = "DS2";}Als nächstes ist die wichtigste DynamicDataSource.java es erbt die abstrakte Methode DesticurrentLookupkey in AbstractroutingDataSource, die der Kern der Implementierung der Route der Datenquelle ist. Diese Methode ist überschrieben.
import org.springframework.jdbc.datasource.lookup.abstractRoutingDataSource; Public Class DynamicDataSource erweitert AbstractroutingDataSource {@Override geschützte Objektdeterminencurentlookupkey () {return dataSourcontexTHOLDER.GETER.GETECTECT.GETDBTYNECURENT () {{); }}Die obige Analyse der Verwendung von Beispielen für die vom Editor eingeführte Spring-MVC-MyBatis-Multi-Data-Quelle. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!