<?xml version=”1.0″ encoding=”UTF-8″?>
<beans xmlns=” http://www.springframework.org/schema/beans 
xmlns:xsi=” http://www.w3.org/2001/XMLSchema-instance 
xmlns:aop=” http://www.springframework.org/schema/aop 
xmlns:tx=” http://www.springframework.org/schema/tx 
xsi:schemaLocation=” http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd 
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx.xsd 
http://www.springframework.org/schema/aop 
http://www.springframework.org/schema/aop/spring-aop.xsd “>
这里省去Datasource 和 sessionFacory
<bean id=”transactionManager”
abstract=”false” lazy-init=”default” autowire=”default” dependency-check=”default”>
<property name=”sessionFactory”>
<ref bean=”sessionFactory” />
</property>
</bean>
<!– 声明式事务 –>
<!– 事务通知 –>
< tx:advice id = “txAdvice” transaction-manager = “transactionManager” >
< tx:attributes >
< tx:method name = “add*” propagation = “REQUIRED” />
< tx:method name = “delete*” propagation = “REQUIRED” />
< tx:method name = “update*” propagation = “REQUIRED” />
< tx:method name = “add*” propagation = “REQUIRED” rollback-for=”Exception” /> 设置回滚的条件Exception
<tx:method name=”*” propagation=”REQUIRED” read-only=”true” />
<!– <tx:method name=”*” propagation=”true” />–>
</ tx:attributes >
</ tx:advice >
<!– 那些类的哪些方法参与事务 –>
<aop:config proxy-target-class=”true”> proxy-target-class默认是false, 仅当此代理类属性中包含 的bean实现了某个接口的情况下 设置为true 将自动适用事务
<aop:advisor pointcut=”execution(* com.sun.java.*.server.*.*(..))” advice-ref=”txAdvice” />
<aop:advisor pointcut=”execution(* com.sun.java.*.dao.*.*(..))” advice-ref=”txAdvice” />
</aop:config>
</ beans >