Spring3+Hibernate4 配置多个数据源的方法
来源:互联网 发布:手动添加网络ssid 编辑:程序博客网 时间:2024/05/21 19:42
1 首先线程类(放哪你自己定)
public class DataSourceThread {
public static final String DATA_SOURCE_DEFAULT = "dataSource1";
public static final String DATA_SOURCE_DINGFAN = "dataSource2";
private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();
public static void setCustomerType(String customerType) {
contextHolder.set(customerType);
}
public static String getCustomerType() {
return contextHolder.get();
}
public static void clearCustomerType() {
contextHolder.remove();
}
}
2 继承
public class DynamicDataSource extends AbstractRoutingDataSource {
protected Object determineCurrentLookupKey() {
return DataSourceThread.getCustomerType();
}
}
3 spring.xml配置
<!-- 配置数据源 -->
<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.url}" p:username="${jdbc.username}" p:password="${jdbc.password}"
p:timeBetweenEvictionRunsMillis="1000" p:validationQuery="select 1">
</bean>
<bean id="dataSource2" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.url2}" p:username="${jdbc.username}" p:password="${jdbc.password}"
p:timeBetweenEvictionRunsMillis="1000" p:validationQuery="select 1">
</bean>
<!--默认数据源配置 -->
<bean id="dataSource" class="com.complex.verson1_0.common.dao.DynamicDataSource" >
<property name="targetDataSources">
<map key-type="java.lang.String">
<entry value-ref="dataSource1" key="dataSource1"></entry>
<entry value-ref="dataSource2" key="dataSource2"></entry>
</map>
</property>
<property name="defaultTargetDataSource" ref="dataSource1" >
</property>
</bean>
<!-- 配置SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"
p:dataSource-ref="dataSource" p:configLocation="classpath:hibernate.cfg.xml">
</bean>
4 使用
public class TestAction extends BaseAction{
private static final long serialVersionUID = 1536384860148891148L;
@Autowired
private ITestService testServiceImp;
public String queryAll() throws Exception {
DataSourceThread.setCustomerType(DataSourceThread.DATA_SOURCE_DINGFAN);
List<String> list = testServiceImp.getName();
System.out.println(list.size());
return SUCCESS;
}
}
- Spring3+Hibernate4 配置多个数据源的方法
- Hibernate4+Spring3 配置数据源
- Spring3.0配置多个事务管理器(即操作多个数据源)的方法
- Spring3+Jpa 配置多个数据源的解决方案(基于注解)
- Spring3+Hibernate3(Jpa) 配置多个数据源的解决方案(基于注解)
- Spring3+Hibernate3(Jpa) 配置多个数据源的解决方案(基于注解)
- Spring3+Hibernate3(Jpa) 配置多个数据源的解决方案(基于注解)
- Spring3+Hibernate3(Jpa) 配置多个数据源的解决方案(基于注解)
- Spring3+Hibernate3(Jpa) 配置多个数据源的解决方案(基于注解)
- Spring3+Hibernate3(Jpa) 配置多个数据源的解决方案(基于注解)
- Spring3+hibernate4整合配置
- 配置Spring3+SpringMVC+Hibernate4
- Spring3 集成 Hibernate4 配置
- spring多个数据源的dbcp配置方法
- Spring3与Hibernate4整合配置
- Struts2+Spring3+Hibernate4+JavaEE6 配置
- spring3.1+hibernate4.1关于事务的配置
- 配置多个数据源
- 整型数据的二进制格式和文本格式的传输方式
- 黑马程序员——Java语言基础
- 你也知道我不容易相信别人和与别人交心
- 高桥和低桥
- 【Effective C++学习笔记】Item5-Item12
- Spring3+Hibernate4 配置多个数据源的方法
- 我觉得我努力画画终于有了意义
- 这机器人的面部肌肉抽搐了一下
- 在GitHub上分享和展示你的代码
- 双色汉诺塔问题
- C/C++内存布局方式
- 二叉排序树
- 关于析构函数和纯虚函数
- Codevs 1013 求先序排列