프로젝트는 임시 요구 사항이기 때문에 다른 웹 사이트에서 데이터를 얻어야합니다. 프로젝트를 시작할 때 여러 데이터 소스가 필요할 것으로 기대하지 않았습니다.
따라서 Baidu는 Spring의 ApplicationContext.xml 파일 만 변경하고 세 가지 도구 클래스를 작성하여 완벽하게 구현하면됩니다.
ApplicationContext.xml
<!-멀티 데이터 소스 구성-> <bean id = "ds1"> <property name = "driverclassName"value = "$ {jdbc.driverClassName}" /> <속성 이름 = "url"value = "$ {jdbc.url}" /> <property name = "username ="{jdbc.username " value = " /> < /bean> <bean id ="ds2 "> <속성 이름 ="driver className "value =" /> <속성 이름 = "url"value = "" /> <속성 이름 = "username"value = "" /> <property name = "password"vale = "" /> < /bean> <!-DATASOURCE의 Dynamic configuration ". 프로젝트의 DynamicDatasource.java <속성 이름 = "TargetDatasources"> <map key-type = "java.lang.string"> <Entry Value-Ref = "ds_admin"key = "ds1"> </enterd> <Entry Value-Ref = "ds_partner"key = "ds2"> </lection> </egent> </egperation> <! 기본적으로-> <property name = "defaultTargetDatasource"ref = "ds_admin"> </property> </bean>DataSourceContexTholder.java
공개 클래스 DataSourceContexTholder {private static final tridelocal <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 (정적 변수 설정)
공개 클래스 DataSourceType {// 기본 데이터베이스 공개 정적 최종 문자열 source_admin = "ds1"; // ApplicationContext.xml의 두 번째 데이터베이스, ID 공개 정적 최종 문자열 source_partner = "ds2";}다음은 주요 DynamicDatasource.java입니다. AbstractroutingDatasource에서 추상적 인 메소드 DectinedCurrentLookupkey를 상속합니다. 이는 데이터 소스의 경로를 구현하는 핵심입니다. 이 방법은 재정의됩니다.
import org.springframework.jdbc.datasource.lookup.abstractroutingdatasource; public class dynamicdatasource는 attractroutingdatasource {@override protected object gomineecurrentLookupkey () {return dataSourceContexTholder.getdbtype (); }}위는 편집기가 소개 한 Spring MVC Mybatis Multi-Data 소스의 사용 예에 대한 분석입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!