搭建一个SSM项目 -6: 增加“事务”
2020-08-28 本文已影响0人
轻云绿原
现在应该增加数据库的事务管理了。
spring-myBatis的事务管理
事务管理的话,是用AOP实现的
1:引入依赖
<!--aop的框架-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${springVersion}</version>
</dependency>
<!--分析切点表达式的框架-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.5</version>
</dependency>
2:怎么用?
在beans.xml
里增加以下
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!--这里的dataSource bean 要和org.mybatis.spring.SqlSessionFactoryBean里面的用同一个-->
<constructor-arg ref="dataSource"/>
</bean>
<!--增强-->
<tx:advice id="tx" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="fetch*" propagation="SUPPORTS" read-only="false"/>
<tx:method name="*" propagation="REQUIRED" read-only="false"/>
</tx:attributes>
</tx:advice>
<!--切面在哪里,切到哪里-->
<aop:config>
<aop:pointcut id="pc" expression="execution(* com.ppf.service.*.*(..))"/>
<aop:advisor advice-ref="tx" pointcut-ref="pc"/>
</aop:config>