15.1 Spring事务回顾
15.1.2 原理
Spring的事务是使用的是AOP,AOP的底层使用动态代理实现的。
15.1.3 使用
-
xml
TransationManager:需要在xml中配置一个事务管理器 Advisor:通知 PointCUt:通过切面应用通知. -
注解式
TransationManager:需要在xml中配置一个事务管理器 打注解@Transational:在需要配置事务类上面加注解 扫描注解</tx:annotationDriven>:xml中需要配置注解支持
推荐使用注解式,比较简单
15.2 Springboot配置Spring事务
15.2.1 原理概述
Springboot推荐使用注解式事务,并且已经给我们做了自动配置,我们只需打@Transational注解就ok了
TransationManager:需要在xml中配置一个事务管理器 已经自动配置
打注解@Transational:在需要配置事务类上面加注解 需要自己做
扫描注解</tx:annotationDriven>:xml中需要配置注解支持 已经自动配置
15.2.2 使用
-
在Springboot-myabtis测试
我们可以在Jdbc或Spring data jpa或者Mybatis中测试,我就选择在Mybatis中测试
-
代码实现
/** * BaseServiceIMPl要实现基础接口防范 * @param <T> */ @Transactional(propagation = Propagation.SUPPORTS,readOnly = true) public class BaseServiceImpl<T> implements IBaseService<T> { //必须加泛型 我们使用的不是BaseMapper,是子类(DepartmentService)所对应的Mapper(DepartmentMapepr) @Autowired private BaseMapper<T> mapper; @Transactional @Override public void add(T t) { mapper.save(t); } @Transactional @Override public void delete(Long id) { mapper.remove(id); } @Transactional @Override public void update(T t) { mapper.update(t); } @Override public T getById(Long id) { return mapper.loadById(id); } @Override public List<T> getAll() { return mapper.loadAll(); } @Override public PageList<T> queryPage(BaseQuery query) { Long count = mapper.queryCount(query); if (count==0){ return new PageList<>(); } List<T> data = mapper.queryData(query); return new PageList<>(count,data); } @Transactional @Override public void bulkDel(List<Long> ids) { mapper.batchRemove(ids); } }
15.3 小结
本章节学习了再Springboot中怎么配置事务。
本文介绍Spring框架中的事务管理机制,包括Spring事务的原理、配置方法及Spring Boot中的事务配置。通过XML和注解两种方式实现事务管理,重点推荐使用注解式配置。
4万+

被折叠的 条评论
为什么被折叠?



