spring事务的配置有两种方式
1.xml配置的声明式事务配置
(1)配置数据源信息dataSource(使用阿里的数据源)
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close">
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="driverClassName" value="${jdbc.driver}" />
<property name="maxActive" value="10" />
<property name="minIdle" value="5" />
</bean>
(2)注册事务管理器(使用的是DataSourceTransactionManager事务管理器)
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
(3)通过代理方式配置事务通知,配置事务的切入点,将切入点作用到目标对象中(组装切面)
(3.1)配置事务通知
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 配置事务的传播属性 -->
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="insert*" propagation="REQUIRED" />
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="create*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="find*" propagation="SUPPORTS" read-only="true" />
<tx:method name="select*" propagation="SUPPORTS" read-only="true" />
<tx:method name="get*" propagation="SUPPORTS" read-only="true" />
</tx:attributes>
</tx:advice>
(3.2)组装切点表达式
<!-- 组装切面 -->
<aop:config>
<!-- 配置切点表达式 ,对service包下面的所有方法都启用事务-->
<aop:pointcut expression="execution(* nyist.e3.service..*.*(..))"
id="pc" />
<!-- 将事务的传播属性作用到切点函数中 (组装切面)-->
<aop:advisor advice-ref="txAdvice" pointcut-ref="pc" />
</aop:config>
2.基于注解方式的事务配置
只需要在spring中开启事务配置的注解即可
<!-- 开启事务注解 -->
<mvc:annotation-driven />