- 1th xml 配置
<bean name="dataSource_jeecg" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
略
<bean>
<!-- 数据源汇合 -->
<bean id="dataSource"
class="org.jeecgframework.core.extend.datasource.DynamicDataSource">
<property name="targetDataSources">
<map key-type="java.lang.String">
<!---->
<entry key="push" value-ref="dataSource_jeecg" />
<!---->
<entry key="defau" value-ref="mapdataSource" />
</map>
</property>
<!-- 默认数据源 -->
<property name="defaultTargetDataSource" ref="dataSource_jeecg" />
</bean>
- 2th, java 配置类
public class DynamicDataSourceGlobal {
public static final String DATASOURCE_PUSH="defaut"; // 企业数据库
public static final String DATASOURCE_DEFAU="defaut02";// 海关数据库
}
-- 设置类
public class DynamicDataSourceHolder {
// 线程本地环境
@SuppressWarnings("rawtypes")
private static final ThreadLocal contextHolder = new ThreadLocal();
// 设置数据源类型
@SuppressWarnings("unchecked")
public static void setDataSourceType(String dataSourceType) {contextHolder.set(dataSourceType);
}
// 获取数据源类型
public static String getDataSourceType() {return (String) contextHolder.get();}
// 革除数据源类型
public static void clearDataSourceType() {contextHolder.remove();
}
}
- 3th service 调用
DynamicDataSourceHolder.setDataSourceType(DynamicDataSourceGlobal.DATASOURCE_PUSH);
jdbcTemplate.queryForList(sql);
具体的业务或则读写拆散应用