附上配置文件的内容:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC
"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="remoteCallSvc" class="com.ztesoft.base.RemoteSvc" />
<bean id="HelloSvc" class="com.ztesoft.base.Hello" />
<bean id="StaffQuerySvc" class="com.ztesoft.HotelApp.StaffQuery" /> <bean id="DeptQuerySvc" class="com.ztesoft.HotelApp.DeptQuery" />
<bean id="DeptQuerySvcBean" class="com.newejb.bean.DeptQueryBean" />
</beans>
"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="remoteCallSvc" class="com.ztesoft.base.RemoteSvc" />
<bean id="HelloSvc" class="com.ztesoft.base.Hello" />
<bean id="StaffQuerySvc" class="com.ztesoft.HotelApp.StaffQuery" /> <bean id="DeptQuerySvc" class="com.ztesoft.HotelApp.DeptQuery" />
<bean id="DeptQuerySvcBean" class="com.newejb.bean.DeptQueryBean" />
</beans>
"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans> <!--定义数据源 数据源的作用是指定数据访问的控制bean,由这个bean来完成事务的真正实现 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!-- 定义数据库驱动-->
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<!-- 定义数据库url-->
<property name="url" value="jdbc:oracle:thin:@10.42.36.247:1521:hotel"/>
<!-- 定义数据库用户名-->
<property name="username" value="hotel" />
<!-- 定义数据库密码-->
<property name="password" value="hotel" />
</bean> <!-- 事务管理者:也就是定义一个事务托管的bean,这个事务托管bean将事务的操作委派给它自己的dataSource对象来完成 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 被管理的对象: 引发事务的bean,由它来发起一个事务 -->
<bean id="DeptQuerySvcBean" class="com.newejb.bean.DeptQueryBean"> </bean>
<!-- 事务性代理对象:事务管理容器bean,由它来指定事务管理者,被管理者,以及要管理的事务类型
实际上就是用spring的事务管理容器TransactionProxyFactoryBean来实现事务管理 -->
<bean id="DeptTsManagerBean"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="transactionManager" ></property>
<property name="target" ref="DeptQuerySvcBean"></property>
<property name="transactionAttributes">
<props>
<!-- prop key="myBusinessMethod">PROPAGATION_REQUIRED,-Exception </prop> -->
<prop key="reg*">PROPAGATION_REQUIRED ,-Exception</prop> <prop key="mod*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="add*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="commit*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="Query*">PROPAGATION_REQUIRED ,-Exception</prop>
</props>
</property>
</bean><!-- 后面的bean是事务无关......-->
<bean id="remoteCallSvc" class="com.ztesoft.base.RemoteSvc" />
<bean id="HelloSvc" class="com.ztesoft.base.Hello" />
<bean id="StaffQuerySvc" class="com.ztesoft.HotelApp.StaffQuery" /> <bean id="DeptQuerySvc" class="com.ztesoft.HotelApp.DeptQuery" />
</beans>