公司同事写的,本来是内部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;
}
});
}