67,512
社区成员
发帖
与我相关
我的任务
分享
<!-- 针对单一数据源的事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource"><ref local="dataSource"/></property>
</bean>
<bean id="baseDao" class="com.unit.BaseAction">
<property name="dataSource"><ref local="dataSource" />
</property>
<property name="sqlMapClient" ref="sqlMapClient"/>
</bean>
<!-- 配置事务代理的基类,如果子类需要事务处理,一般建议继承该代理,可以将很多通用的方法 -->
<bean id="baseTransactionProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="*">
PROPAGATION_REQUIRED,-AppException,-PrcException
</prop>
</props>
</property>
</bean>
<bean id="baseService" class="com.unit.BaseService">
<property name="dao">
<ref bean="baseDao" />
</property>
</bean>
<bean id="abstractBaseService" abstract="true" class="com.unit.BaseService">
<property name="dao">
<ref bean="baseDao" />
</property>
</bean>
<bean id="commonSqlExecuteService" parent="baseTransactionProxy" >
<property name="target">
<bean class="com.dao.service.serviceimpl.CommonSqlExecuteServiceImpl" parent="abstractBaseService">
</bean>
</property>
</bean>
public class BaseService {
private BaseAction dao;
public BaseAction getDao() {
return dao;
}
public void setDao(BaseAction dao) {
this.dao = dao;
}
public SqlMapClientTemplate getService(String sevicename){
return dao.getService(sevicename);
}
}
public class BaseAction extends SqlMapClientDaoSupport {
public SqlMapClientTemplate getService(String servicename) throws DataAccessException {
ApplicationContext app;
app = new ClassPathXmlApplicationContext("../applicationContext.xml");
return ((BaseAction)app.getBean(servicename)).getSqlMapClientTemplate();
}
}