十五 Springboot-配置Spring事务

本文介绍Spring框架中的事务管理机制,包括Spring事务的原理、配置方法及Spring Boot中的事务配置。通过XML和注解两种方式实现事务管理,重点推荐使用注解式配置。

15.1 Spring事务回顾

15.1.2 原理

​ Spring的事务是使用的是AOP,AOP的底层使用动态代理实现的。

15.1.3 使用

  1. xml

    TransationManager:需要在xml中配置一个事务管理器
    Advisor:通知
    PointCUt:通过切面应用通知.
    
  2. 注解式

    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 使用

  1. 在Springboot-myabtis测试

    我们可以在Jdbc或Spring data jpa或者Mybatis中测试,我就选择在Mybatis中测试

  2. 代码实现

    /**
     * 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中怎么配置事务。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值