spring+struts在service层的事务控制,applicationContext.xml

使用spring中的jdbcTemplate,一种配置。在一个service层中,有些情况是会同时调用不同的dao,对数据库进行存取操作,而这些操作具有原子性,即其中任何一个dao操作发生异常,整个受事务管理的方法都要rollback.
<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName"
			value="org.hsqldb.jdbcDriver">
		</property>
		<property name="url"
			value="jdbc:hsqldb:hsql://localhost/xdb">
		</property>
		<property name="username" value="sa"></property>
		<property name="password" value="hsql"></property>
	</bean>

	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">   
        <property name="dataSource" ref="dataSource"/>   
     </bean>
     
     <bean id="baseTxProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" lazy-init="true">   
        <property name="transactionManager">   
        	<ref bean="transactionManager" />   
         </property>   
         <property name="transactionAttributes">   
         <props>   
             <prop key="*">PROPAGATION_REQUIRED</prop>   
        </props>   
         </property>   
    </bean>
    
	<bean id="studentManagerService" parent="baseTxProxy" >   
		<property name="target">   
			<bean class="chuck.service.impl.StudentManagerServiceImpl">        
				<property name="studentDao">   
					<ref bean="studentDAO"/>   
				</property>        
			</bean>     
		</property>     
	</bean> 
     
     <bean id="studentDAO" class="chuck.dao.impl.StudentDAOImpl">   
       <property name="dataSource" ref="dataSource"/>   
    </bean>   
     
</beans>

你可能感兴趣的:(DAO,spring,xml,struts,配置管理)