Java面试题-13Spring

1、事务管理

spring事务分为编程式事务和声明式事务

Spring事务管理器的行为的重要组成部分。下面是对这些属性的简要解释:

1. **value**:用于指定事务管理器的名称。如果应用中只有一个事务管理器,通常可以省略该属性。

2. **propagation**:指定事务的传播机制,即在多个事务方法相互调用时事务的行为。常用的传播机制包括:
- REQUIRED:如果当前没有事务,就新建一个事务;如果已经存在一个事务中,加入到这个事务中。
- REQUIRES_NEW:每次都新建一个事务,如果当前存在事务,则挂起当前事务。
- SUPPORTS:如果当前有事务,则加入事务;如果当前没有事务,则以非事务的方式执行。
- MANDATORY:必须在一个已有的事务中执行,否则抛出异常。
- NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,则挂起该事务。
- NEVER:以非事务方式执行操作,如果当前存在事务,则抛出异常。
- NESTED:如果当前存在事务,则在嵌套事务内执行;如果当前没有事务,则新建一个事务。

3. **isolation**:指定事务的隔离级别,即多个事务同时执行时各自操作数据的可见性和影响。常用的隔离级别包括:
- DEFAULT:使用数据库默认的隔离级别。
- READ_UNCOMMITTED:最低的隔离级别,允许一个事务读取另一个事务尚未提交的数据。
- READ_COMMITTED:允许一个事务读取另一个事务已经提交的数据,避免了脏读取。
- REPEATABLE_READ:确保一个事务不会读取另一个事务已提交的新数据,防止不可重复读。
- SERIALIZABLE:最高的隔离级别,通过对数据进行锁定来保证事务的完全隔离。

4. **timeout**:指定事务的超时时间,单位为秒。超过该时间限制但事务尚未完成,则自动回滚事务。默认值为-1,表示没有超时限制。

5. **readOnly**:指定事务是否为只读事务。如果设置为 true,表示只读取数据而不进行写操作,可以帮助数据库优化性能。

6. **rollbackFor**:指定需要回滚事务的异常类型。如果方法抛出指定类型的异常,则事务会回滚。

7. **noRollbackFor**:指定不需要回滚事务的异常类型。如果方法抛出指定类型的异常,则事务不会回滚。

这些属性可以根据具体业务需求进行灵活配置,以达到最佳的事务管理效果。

11111

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

扰扰1994

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

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

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

打赏作者

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

抵扣说明:

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

余额充值