>  기사  >  Java  >  Spring MVC Mybatis 다중 데이터 소스 사용 사례 분석

Spring MVC Mybatis 다중 데이터 소스 사용 사례 분석

高洛峰
高洛峰원래의
2017-01-24 10:28:231684검색

이 프로젝트는 다른 웹사이트에서 데이터를 얻어야 하는 작업이기 때문에 프로젝트를 시작할 때 여러 데이터 소스가 필요할 것이라고는 예상하지 못했습니다.

그래서 Baidu에서 검색해 보니 Spring applicationContext.xml 파일만 변경하면 됩니다. 그리고 세 가지 도구 클래스를 작성하면

applicationContext.xml

<!-- 多数据源配置 -->
 <bean id="ds1" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="${jdbc.driverClassName}" />
  <property name="url" value="${jdbc.url}" />
  <property name="username" value="${jdbc.username}" />
  <property name="password" value="" />
 </bean>
 <bean id="ds2" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="" />
  <property name="url" value="" />
  <property name="username" value="" />
  <property name="password" value="" />
 </bean>
 <!-- 动态配置数据源 -->
 <bean id="dataSource" class="com.test.utils.DynamicDataSource">//这里是你项目里DynamicDataSource.java的路径
  <property name="targetDataSources">
   <map key-type="java.lang.String">
    <entry value-ref="ds_admin" key="ds1"></entry>
    <entry value-ref="ds_partner" key="ds2"></entry>
   </map>
  </property>
  <!-- 默认使用ds1的数据源 -->
  <property name="defaultTargetDataSource" ref="ds_admin"></property> 
 </bean>

>

DataSourceType.java(정적 변수 설정)

public class 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();
 }
}

다음은 DynamicDataSource.java 키입니다. 이는 AbstractRoutingDataSource의 definCurrentLookupKey를 상속하며 데이터 소스를 구현하는 경로의 핵심입니다. 여기서 이 메서드를 재정의합니다.

public class DataSourceType {
 // 默认数据库
 public static final String SOURCE_ADMIN = "ds1";
 // 第二个数据库,在applicationContext.xml里的id
 public static final String SOURCE_PARTNER = "ds2";
}

위는 편집자가 소개한 Spring MVC Mybatis 다중 데이터 소스의 사용 사례를 분석한 내용입니다. 궁금한 점이 있으시면 도움이 되시기 바랍니다. 나에게 메시지를 남겨주세요. 편집자가 제 시간에 모든 사람에게 답변을 드릴 것입니다. 또한 PHP 중국어 웹사이트를 지원해 주신 모든 분들께 감사드립니다!

Spring MVC Mybatis 다중 데이터 소스의 사용 사례 분석과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.