プロジェクトは、一時的な要件であるため、他のWebサイトからデータを取得する必要があります。プロジェクトを開始するときに複数のデータソースが必要であるとは思っていませんでした。
そのため、Baiduは、SpringのApplicationContext.xmlファイルを変更し、3つのツールクラスを作成して完全に実装するだけであることのみが必要であることがわかりました。
ApplicationContext.xml
<! - Multi-Data Source Configuration-> <Bean Id = "ds1"> <プロパティ名= "driverclassname" value = "$ {jdbc.driverclassname}" /> <プロパティ名= "url" value = "$ {jdbc.url}" />> <プロパティ= "jdbc. value = " /> < /bean> <bean id =" ds2 "> <property name =" driverclassname "value =" " /> <プロパティ名=" url "value =" " /> <プロパティ名="ユーザー名 "値=" " /> <プロパティ名="パスワード "value =" "" /> < /bean> <! dynamicdatasource.java in Your Project <Property name = "TargetDataSources"> <Map key-type = "Java.lang.String"> <entry value-ref = "ds_admin" key = "ds1"> </entry> <entry value-ref = "ds_partner" ds2 "> </</</<デフォルト - > <プロパティ名= "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); } public static string getdbtype(){return(((string)contextholder.get()); } public static void cleardbtype(){contextholder.remove(); }} DataSourcetype.java(静的変数を設定)
public class dataSourceType {//デフォルトデータベースpublic static final string source_admin = "ds1"; // 2番目のデータベース、ApplicationContext.xmlパブリックスタティック最終文字source_partner = "ds2";}次は重要なdynamicdatasource.javaです。それは、データソースのルートを実装するコアであるAbstractroutingDataSourceの抽象化されたCurrentLookUpKeyを継承します。この方法はオーバーライドしています。
Import org.springframework.jdbc.datasource.lookup.abstractroutingdatasource; public class dynamicdatasource extends abstractroutingdatasource {@overrideプロテクトされたオブジェクトdecurrentlookupkey(){return date dataourcontextholder.getdbtype(); }}上記は、編集者によって導入されたスプリングMVC Mybatis Multi-Dataソースの使用例の分析です。私はそれが誰にでも役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は、すべての人に時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!