`
annan211
  • 浏览: 463146 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

spring 事务属性分类

 
阅读更多

  required 业务方法需要在一个事务中运行,如归哦方法运行时,已经处在一个事务中,那么加入到该事物,否则为自己创建一个新的事务。

  not_support 声明方法不需要事务,如果方法没有关联一个事务,容器不会为他开启事务,如果方法在一个事务中被调用,该事物会被挂起,在方法调用结束后,原先的事务便会恢复执行。

  requireshew  属性表明不管是否存在事务,业务方法总会为自己发起一个新的事务,如果方法已经在一个事务当中,则原有事务会被挂起,新的事务会被创建,直到方法执行结束,新事物才算结束,原先的事务才会被恢复执行。

  mandatory 该属性指定业务方法只能在一个已经存在的事务中执行,业务方法不能发起自己的事务,如果业务方法没有在事务的环境下调用,容器就会抛出例外。

  support 这一事务属性表明,如果业务方法在某个事务范围内被调用,则方法成为该事物的一部分。如果业务方法在事务范围外被调用,则方法在没有事务的环境下执行。

  naver 指定业务方法绝对不能在事务范围内执行,如果业务方法在某个事务中执行,容器会抛出例外,只有业务方法没有关联人和事务,才能正常执行。
 
  以上的事务传播属性 是 spring 借鉴 ejb 框架得来,下面一条是spring 特有的事务传播属性。

  nested  如果一个活动的事务存在,则运行子啊一个嵌套的事务中,如果没有活动的事务,则按照required属性执行,她使用了一个单独的事务,这个事务拥有多个可以回滚的保存点,内部事务的回滚不会对外部事务造成影响。她只会对DataSourceTransactionManager事务管理器起作用。


事务也可以设置 只读 和 超时 属性 或者 数据库的隔离级别属性。


 
    @Transactional(propagation=Propagation.NOT_SUPPORT,readOnly=true,)



  通常 读者看到的博客当中 所说的 事务隔离并没有很清楚的说明,这里所说的 spring 的事务隔离级别是指 数据库系统提供的 事务隔离级别。
 
  read uncommited 读取未提交数据(会出现脏读,不可重复读和幻读)
 
  read commited 读取已经提交的数据(会出现不可重复读和幻读)

  repeatable read 可重复读(会出现幻读)

  serializable 串行化

  serializable 的隔离级别最高,read Uncommited隔离级别最低,大部分数据库的隔离级别是 read commited .隔离级别越高,对并发的影响越大。
分享到:
评论

相关推荐

    Spring事务管理

    - **基于注解的配置**:使用`@Transactional`注解直接在业务方法上声明事务属性,如`PROPAGATION_REQUIRED`表示必须有事务,如果没有则新建。这种方式更加简洁,但需要开启Spring的注解驱动事务管理。 3. **事务...

    spring笔试题28题选择+2简答

    **知识点1:Spring事务管理的分类** - **编程式事务管理**: 通过代码显式控制事务的开始、提交或回滚。 - **声明式事务管理**: 通过配置文件或注解的方式进行事务管理,减少代码量且易于维护。 **知识点2:事务管理...

    spring 配置文件 归类

    AOP在Spring中主要应用于日志记录、事务管理、安全控制等方面。它允许开发者定义“切面”,这些切面可以在特定的“连接点”(如方法调用)执行代码,无需修改原有业务逻辑。在XML配置文件中,AOP的配置通常涉及到...

    Spring面试宝典 不看后悔

    综上所述,Spring框架提供了丰富的特性来帮助开发者高效地构建和管理应用程序,从依赖注入到事务管理,再到生命周期管理等方面,都提供了强大的支持。通过对这些知识点的理解和掌握,可以帮助开发者更好地应对面试和...

    Java Spring 事务回滚详解

    在Java Spring框架中,事务...通过理解异常分类和Spring的事务管理规则,我们可以有效地控制何时回滚事务,从而确保应用程序的稳定性和可靠性。在实际开发中,务必注意异常处理和事务配置,以防止数据不一致的问题。

    大型项目的struts,spring配置文件

    Struts是MVC(模型-视图-控制器)架构的一个实现,主要用于处理前端请求,而Spring则是一个全面的后端框架,提供依赖注入、事务管理、AOP(面向切面编程)等功能。 在大型项目中,Struts和Spring的配置文件是系统的...

    JavaAnd数据库事务[整理].pdf

    EJB 3.x引入了无状态会话Bean和实体Bean,其中无状态会话Bean默认为非事务性的,而实体Bean和有状态会话Bean可以根据需要配置事务属性。 总之,理解并熟练掌握Java和数据库事务对于开发健壮的、高可用的软件系统至...

    Java事务设计策略.

    1. **合理设置事务属性**:当为方法分配事务属性时,建议将最具有限制性的属性作为类级别的默认属性,然后针对特殊需求的方法进行调整。这样做可以减少代码中的重复,并且更容易理解和维护。 2. **事务管理的位置**...

    档案信息管理系统 spring mvc、 hiberntate、 spring 数据库和包完整

    数据库的设计应考虑档案的分类、属性、时间线以及权限控制等要素,确保数据的完整性、一致性和安全性。 5. **源码分析**:标签中提到的“Java源码”意味着这个压缩包可能包含了整个系统的源代码。开发者可以通过...

    spring2.0技术手册--林信良

    - **JDBC 模块**:Spring 2.0 对 JDBC 模块进行了大幅度的改进,提供了更多的异常分类,并且增强了 JdbcTemplate 类的功能。 - **ORM 模块**:支持更多的 ORM 工具,如 Hibernate、MyBatis 等,提供了更为丰富的集成...

    rocketmq-spring-rocketmq-spring-all-2.2.2.zip

    3. **Topic**:消息的主题,消息被分类存储,每个主题可以有多个订阅者。 4. **Queue**:每个Topic下可以有多个队列,队列是实际存储消息的地方,消费者从队列中拉取消息。 5. **Message**:消息载体,包含消息内容...

    spring boot操作kafka例子

    在Spring Boot应用中,我们需要在`application.properties`或`application.yml`文件中配置Kafka的相关属性,如服务器地址、主题等。以下是一个简单的配置示例: ```properties spring.kafka.bootstrap-servers=...

    它是用JavaSpring Boot和Spring Framework一个玩具项目构建的,作为我写的关于JavaSpr.zip

    1. **Spring Boot**: 如何初始化项目,配置应用属性,自动配置机制,以及如何创建启动器应用。 2. **Spring MVC**: 用于构建Web应用的部分,包括控制器、模型、视图和适配器的使用。 3. **Spring Data**: 提供与...

    movies-java-spring-data-neo4j-main.zip

    6. **事务管理**: Spring Data Neo4j支持事务管理,确保数据操作的一致性和原子性。 7. **图数据模型**: 项目的代码会展示如何设计和实现图数据模型,例如,电影与演员之间的多对多关系,以及电影的分类等。 8. **...

    spring、hibernate的Rose设计cat文件

    你可以定义实体类,配置它们的属性和关系,模拟事务处理,甚至可以生成相应的Java代码,从而加速开发过程。 总的来说,导入`spring_org_springframework.cat`和`hibernate.cat`文件,意味着你可以利用Rational Rose...

    分布式事务1

    在Spring框架中,我们可以使用@Transactional注解来管理事务,通过propagation属性指定事务的传播行为。如REQUIRES_NEW表示开启新的事务,即使在已有事务中调用,也不会影响原事务;而REQUIRED则表示使用当前事务,...

    Hibernate+Spring源代码

    Hibernate是一个对象关系映射(ORM)框架,它简化了数据库操作,使开发者能够用Java对象来处理数据库事务,而无需过多关注SQL。Spring框架则是一个全面的后端应用开发框架,提供了依赖注入、面向切面编程、数据访问/...

    spring mvc、hibernate、spring、bootstrap 开发超市后台管理系统源代码下载

    2. 商品管理:添加、编辑、删除商品,管理商品分类和属性。 3. 订单管理:处理顾客订单,跟踪订单状态,进行支付处理。 4. 库存管理:监控商品库存,进行出入库操作,设置库存预警。 5. 销售统计:提供销售数据分析...

Global site tag (gtag.js) - Google Analytics