<!--配置数据源-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/try"/> <property name="username" value="root"/> <property name="password" value="****"/> </bean>
<!--事物管理器--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean>
<!--配置事物通知--> <tx:advice id="txAdrive" transaction-manager="transactionManager"> <tx:attributes><!--该事物适应于任何方法--> <tx:method name="*"/> </tx:attributes> </tx:advice><!--配置通知--> <aop:config> <!--配置切点 "execution(* com.you.service.*.*(..)) 表达式是指com.you.service包下的所有类的所有方法--> <aop:pointcut id="serviceMethod" expression="execution(* com.you.service.*.*(..))"/> <!--当执行切点中的方法时出现任何异常,都会进行事物回滚事物--><aop:advisor advice-ref="txAdrive" pointcut-ref="serviceMethod"/> </aop:config>
切忌一点,如果你使用的是mysql数据库,只有InnoDB和BerkeleyDB两种存储索引才支持事物回滚。