当前位置: 首页 > news >正文

【Spring】Spring整合以及事务控制

Spring整合以及事务

Spring整合

Spring整合Junit

导入依赖

image-20250315103214988

创建测试类

image-20250315103222602

也可以使用这种方法找到xml文件位置

image-20250315103252646


Spring整合Mybatis

导入依赖

image-20250315103318430

JDBC配置文件

image-20250315103326401

spring核心xml文件配置

image-20250315103340376

mybatis核心配置文件

image-20250315103353831

dao接口和实现类

image-20250315103425496

实现类对应mapper文件

在这里插入图片描述


sqlSessionFactoryBean

image-20250315103532804

基础的MyBatis中获取sqlSessionFactory对象

image-20250315103539656

Spring的xml文件中配置sqlSessionFactoryBean

image-20250315103549610

实际上就是new了一个sqlSessionFactoryBean对象
这里是通过getObject()来获取sqlSessionFactory对象

源码:
image-20250315103646697


Srping解耦合

三层架构

image-20250315103716410

service实现类需要依赖dao实现类
没有spring的时候需要new dao接口的实现类

image-20250315103735956

servlet没有实现类,要依赖service实现类
new了service的实现类

image-20250315103757217

spring改进测试类

image-20250315103812420


Spring事务

注解实现事务

spring配置文件

image-20250315104945069

@Transactional添加事务

可以添加在方法和类上,添加到类就说明这个类所有的方法都支持事务
一般都在service层添加事务

image-20250315104958368

事务的底层逻辑就是通过AOP增强解耦合

所以要加上AOP依赖

image-20250315105028019


xml实现事务(可跳过)

image-20250315105015069


传播行为propagation(重点)

事务方法嵌套调用时,需要控制是否开启新事务,可以使用事务传播行为来控制

在这里插入图片描述

image-20250315105208039

@Transactional本质

image-20250315105222066

我们需要日志出现异常的时候不需要回滚转账事务
就需要控制事务的传播行为

image-20250315105253457

默认情况下,外层test方法执行的时候有一个外层事务包裹,内层的转账和打印日志两个事务就加入这个外层的事务了,本身不会有单独的事务包裹

我们可以给转账事务设置REQUIRES_NEW
这时候这个转账事务就会在外层test事务的包裹下还会新建一个自身单独的事务
转账完成后会自动提交

image-20250315111244423

实际上就是new了一个新的连接对象,log还是和外层用一个连接对象


隔离级别isolation

image-20250315111407323

image-20250315111415811


只读readOnly

image-20250315111506116

相关文章:

  • Docker和 Docker Compose安装MySQL:快速搭建数据库环境
  • 编程题-第k个语法符号
  • 《P4387 【深基15.习9】验证栈序列》
  • 一分钟了解深度学习
  • 统计数字字符个数(信息学奥赛一本通-1129)
  • 2025-03-16 学习记录--C/C++-PTA 练习4-10 找出最小值
  • java学习总结(八):Spring boot
  • 海洋难抵极:尼莫点
  • LabVIEW生成EXE文件错误提示
  • 计算机基础:二进制基础12,十进制数转换为十六进制
  • AtCoder Beginner Contest 397(ABCDE)
  • 加固脱壳技术:DEX动态加载对抗
  • #pragma omp critical解析
  • 【YOLOv8】YOLOv8改进系列(7)----替换主干网络之LSKNet
  • 深入分析 Shell 中 IFS、数组赋值与输出行为
  • apk反编译修改教程系列-----修改apk应用 缩小体积 精简apk【三十六】
  • JAVA课程实验报告单(12)---数据库系统设计
  • 内存管理:
  • ESP32_蓝牙音响
  • HTTPS建立连接过程
  • 稳住外贸基本盘,这个中部大省出手了
  • 马上评丨维护学术诚信别陷入“唯AI检测”误区
  • 国家主席习近平在莫斯科出席红场阅兵式
  • 虚假认定实质性重组、高估不良债权价值,原中国华融资产重庆分公司被罚180万元
  • “爱鸟周”为何不能像FI和花展那样“市区联动”
  • 东莞“超级”音乐节五一出圈背后:文旅热力何以澎湃经济脉动