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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章