Spring AOP 事务配置
<?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 >?