spring声明式事务
- 开启事务
<!-- 开启事务--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!--这里引用数据源--> <constructor-arg ref="dataSource"/> </bean>
- 配置事务
<!-- 配置事务--> <tx:advice id="transactionInterceptor" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="get*" propagation="SUPPORTS"/> <tx:method name="delte*" propagation="REQUIRED"/> </tx:attributes> </tx:advice> <!-- AOP--> <aop:config> <aop:pointcut id="txPonitcut" expression="execution(* com.hdax.dao.*.*(..))"/> <aop:advisor advice-ref="transactionInterceptor" pointcut-ref="txPonitcut"/> </aop:config>
- 使用注解配置事务
实现类<tx:annotation-driven transaction-manager="transactionManager"/> <!--需要在实现类上使用注解-->
@Service @Transactional public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Transactional(propagation = Propagation.SUPPORTS) @Override public List<User> getAll() { return userMapper.getAll(); } }