SpringDay04

一、概念

  • 1.1 事务

    • 事务是数据库操作最基本的单元,逻辑上的一组操作要么都成功,如果有一个失败所有操作都失败。
    • 典型场景-银行转账
      • Lucy转账100给Mary
      • Lucy少100,Mary多100

  • 1.2 事务的四个特性

    • 原子性:要么都成功,如果有一个失败所有操作都失败
    • 一致性:Lucy和Mary各有100,两人共有200,Lucy把100给Mary,Lucy是0,Mary是200,和仍是200
    • 隔离性:多事务操作之间相互不影响
    • 持久性:提交事务后,不再变化

二、事务(Spring事务管理介绍)

  • 2.1 事务添加到JavaEE三层架构里面的Service层


  • 2.2 在Spring进行事务管理操作

    • 有两种方式:编程式事务管理声明式事务管理(常用)
      • 声明式事务管理
        • 注解方式
        • xml配置文件方式

  • 2.3 在Spring种进行声明式事务管理,底层使用AOP原理


  • 2.4 Spring事务管理API

    • 提供一个接口,代表事务管理器,这个接口针对不同的框架提供不同的实现类

三、事务操作(注解声明式事务管理)

  • 3.1 使用@Bean创建置事务管理器对象

    	@Bean
        public DataSourceTransactionManager dataSourceTransactionManager(){
            DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager();
            DataSource dataSource = dataSource();
            dataSourceTransactionManager.setDataSource(dataSource);
            return dataSourceTransactionManager;
        }
    

  • 3.2 在配置类SpringConfig上添加注解@EnableTransactionManagement

    • @EnableTransactionManagement 设置当前Spring环境中开启注解式事务支持

  • 3.3 在 service 类上面(或者 service 类里面方法上面)添加事务注解

    • @Transactional,这个注解添加到类上面,也可以添加方法上面
    • 如果把这个注解添加类上面,这个类里面所有的方法都添加事务
    • 如果把这个注解添加方法上面,为这个方法添加事务

四、事务操作(声明式事务管理参数配置)

  • 4.1 在 service 类上面添加注解@Transactional,在这个注解里面可以配置事务相关参数

    @AliasFor("value")
        String transactionManager() default "";
    
        String[] label() default {};
    
        Propagation propagation() default Propagation.REQUIRED;
    
        Isolation isolation() default Isolation.DEFAULT;
    
        int timeout() default -1;
    
        String timeoutString() default "";
    
        boolean readOnly() default false;
    
        Class<? extends Throwable>[] rollbackFor() default {};
    
        String[] rollbackForClassName() default {};
    
        Class<? extends Throwable>[] noRollbackFor() default {};
    
        String[] noRollbackForClassName() default {};
    
    • REMARK
      • propagation:事务的传播行为
      • isolation:隔离级别
      • timeout:超时时间
      • readOnly:只读
      • rollbackFor
      • noRollbackFor

  • 4.2 propagation:事务的传播行为

    • 当一个事务方法被另一个事务方法调用的时候,这个方法如何运行
      在这里插入图片描述
      在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kouxh@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值