公司同事写的,本来是内部WIKI分享的
,mark一下,权作备份,也可以帮助一下需要的人
,mark一下,权作备份,也可以帮助一下需要的人
<!--数据源1-->
<bean id="tx-manager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<osgi:service ref="tx-manager" auto-export="interfaces" >
<osgi:service-properties>
<entry key="db" value="ecp" />
</osgi:service-properties>
</osgi:service>
<!--数据源2-->
<bean id="vehicle-tx-manager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="vehicle-sessionFactory" />
</bean>
<osgi:service ref="vehicle-tx-manager" auto-export="interfaces" >
<osgi:service-properties>
<entry key="db" value="vehicle"/>
</osgi:service-properties>
</osgi:service>
<!--使用Bundle的bean.xml的配置-->
<bean id="vehicle_transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<property name="timeout" value="30"/>
<property name="transactionManager" ref="vehicle-tm"/>
</bean>
<bean id="ecp_transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<property name="timeout" value="30"/>
<property name="transactionManager" ref="ecp-tm"/>
</bean>
//使用Bundle的代码书写(把所要操作的事务写在doSomething中)
@Resource( name = "ecp_transactionTemplate" )
private TransactionTemplate ecp_transactionTemplate;
@Resource( name = "vehicle_transactionTemplate" )
private TransactionTemplate vehicle_transactionTemplate;
public void function1(){
ecp_transactionTemplate.execute(new TransactionCallback() {
@Override
public Object doInTransaction(TransactionStatus status) {
//doSomething1
return null;
}
});
}
public void function2(){
vehicle_transactionTemplate.execute(new TransactionCallback() {
@Override
public Object doInTransaction(TransactionStatus status) {
//doSomething2
return null;
}
});
}
本文介绍了如何在Spring框架中配置和使用事务管理器,包括两个不同的数据源:ecp和vehicle。通过XML配置文件定义了HibernateTransactionManager实例,并利用TransactionTemplate进行事务处理。
2129

被折叠的 条评论
为什么被折叠?



