`
Tyrion
  • 浏览: 261046 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

《java事务设计策略》读后感

 
阅读更多

1.三种事务模型:本地事务模型、编程式事务模型、声明式事务模型。

2.本地事务模型实际上是用Connection的手动编码来管理事务,具体来说就是三部曲setAutoCommit(false) commit() rollback()。

3.编程式事务是在代码中通过获取事务上下文来管理事务的提交、回滚。对应EJB中的BMT。

4.声明式事务是在配置文件中配置事务的处理方式,而不需要在代码中显示调用事务的begin() commit()等方法。对应EJB中的CMT。

5.一般情况下,本地事务模型中对于Connection的操作是放在DAO里面的,但这种方式有很大的缺陷,如:业务层代码需要操作多张表时,一般需要将Connection对象放到DAO方法的参数中传递出去,才能手动管理事务,这样需要开发人员仔细审查DAO里面的代码保证单个请求总是产生单一的事务工作单元。这种方式对于需要跨数据库以及分布式事务的业务不能很好的支持。

6.编程式事务只是作为声明式事务的异常情况的特殊处理,一般不建议使用,需要使用该模型的主要有三种情况:需要由客户端发起事务、需要使用本地JTA事务做精细控制、一个事务跨越对服务器的多次请求

7. 6种事务属性:required mandatory requires-new support not-supported never。给方法指派事务属性时,最好的做法是为类级别指派最严格的事务属性,而后在方法级别上按需微调。

8.事务管理应该在开启事务的方法中进行。因此,开始事务的业务方法具备调用setRollbackOnly()的责任。我目前公司的项目中采取的是通过反射来自动添加事务的方式。即,在调用一个业务方法时,在业务方法执行前自动开启事务,业务方法执行完毕后自动提交事务,业务方法执行过程中出现异常则自动回滚事务的方式。

9.四种隔离级别,从低到高:读取未提交,读取已提交,可重复读,可串行执行。(妈的,上周电话面试的时候一家公司的问我,我竟然忘了哭)。一般数据库厂商默认是读取已提交。我还真没碰到过用别的的场景。

10.Martin Fowler曾经说过“分布式对象设计的第一定律,不要使用分布式对象”。关于分布式是事务(XA),尽量不要用分布式事务。

11.三种事务设计模式:客户端管理事务、领域服务管理事务、服务器端代理(命令代理)管理事务。第三种实际上是第二种的特例。一般采用第二种。

 

 

现在回想起来,毕业后待的第一家公司做的几个项目就是用的第一种,Struts1.2+jdbc,五六个人做的小项目其实这种方式够用,但碰到更复杂的业务场景,那就。。。哭

 

 

另外,特别提一下,这本书的翻译确实非常专业,并且有深厚技术功底,翻译的文字的质量还是经得起考验的。

分享到:
评论

相关推荐

    Java事务设计策略书籍

    在当今世界上有各种各样的企业级 Java 应用。虽然有些不过是简单的 Web 应用,只使用了 一些本地 JavaBeans 或 POJOs(Plain Old Java Objects),但还有很多是复杂的 N 层...都是由错误或没有使用事务管理策略造成的。

    Java 设计模式 策略模式

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java中,策略模式主要通过定义一系列的算法,并将每一个算法封装起来,使它们可以互相替换,让算法独立于使用它的客户而变化。 首先,策略模式的...

    java事务 - 使用动态代理

    Java事务管理是应用程序中至关重要的部分,特别是在处理数据库操作时,确保数据的一致性和完整性。在Java中,事务管理可以通过多种方式实现,其中一种高效且灵活的方法是利用动态代理。动态代理可以帮助我们实现事务...

    Java中各种事务管理技术的总结

    【Java事务管理】Java事务管理是确保数据一致性的重要机制,主要涉及事务的概念、特性、以及在不同环境下的实现方式。事务是一组操作,遵循原子性、一致性、隔离性和持久性的原则,简称为ACID特性: 1. **原子性...

    java 架构设计示例文档

    Java架构设计示例文档涉及的知识点众多,通常它旨在为读者提供一个关于如何设计高效、可扩展和可维护的Java应用架构的参考。文档可能包含以下几个核心部分:需求分析、系统设计、技术选型、模块划分、接口设计、安全...

    oracle 在java中的事务处理和异常回滚。

    在Java编程中,Oracle数据库是常用的后端存储系统,而事务处理和异常回滚是确保数据一致性、完整性和可靠性的关键机制。以下是对这个主题的详细讲解。 首先,Oracle JDBC驱动程序是Java与Oracle数据库之间通信的...

    java开发详细设计文档模板

    java开发详细设计文档模板java开发详细设计文档模板java开发详细设计文档模板java开发详细设计文档模板java开发详细设计文档模板

    教学事务管理系统 java 源代码

    Java以其稳定性和可扩展性,成为了开发大型、分布式系统如教学事务管理系统的首选语言。 【Java 源代码】是开发者编写程序时使用的文本文件,包含了一系列用Java语法编写的指令,可以被Java编译器转换成可执行的...

    班级事务-班级事务系统-班级事务系统源码-班级事务管理系统-基于Web的班级事务系统设计与实现-班级事务系统设计与实现-java

    班级事务-班级事务系统-班级事务系统源码-班级事务管理系统-班级事务管理系统java代码-班级事务系统设计与实现-基于ssm的班级事务系统-基于Web的班级事务系统设计与实现-班级事务网站-班级事务网站代码-班级事务平台...

    javaweb项目-事务管理系统jsp+servlet+mysql-java课程设计毕业设计

    本项目是一个高效的事务管理系统,专为在校大学生的 Java 课程设计和毕业设计提供实用的学习参考和指导。系统采用 JSP 和 Servlet 技术开发,后端使用 MySQL 数据库,以确保数据的高效处理与安全存储。 该事务管理...

    JAVA设计模式之事务处理.pdf

    Java设计模式中的事务处理是构建企业级应用时不可或缺的一部分,主要关注数据的一致性和完整性。在J2EE环境中,Java Transaction API (JTA) 提供了全面的事务管理能力,支持跨多个事务性资源的事务处理。然而,很多...

    雍俊海 Java程序设计教程 课后答案

    Java程序设计是软件开发的基础,尤其对于初学者来说,掌握好Java语言的语法和编程思想至关重要。雍俊海的《Java程序设计教程》是一本深受读者欢迎的教材,其第二版更加深入浅出地讲解了Java的核心概念和技术。课后...

    《Java设计模式》刘伟 课后习题及模拟试题答案.rar

    《Java设计模式》是刘伟老师的一本经典教材,它深入浅出地讲解了软件设计中的重要概念——设计模式。设计模式是经验丰富的开发者在解决常见问题时总结出的通用解决方案,是软件开发中的智慧结晶。这本书的课后习题和...

    java设计方案

    总结,"Java设计方案"是一个广泛的领域,涵盖了面向对象设计、设计模式、设计原则,以及在实际应用如库存管理系统中的具体实现策略。理解和熟练运用这些知识,能够帮助开发者构建出高效、健壮的Java应用。

    java毕业设计

    Java毕业设计是一个重要的学习阶段,通常涉及到实际应用Java编程技能来解决特定问题或构建功能完备的软件系统。在这个过程中,学生不仅需要展示对Java语言的深入理解,还要掌握软件工程的实践方法,如面向对象设计、...

    Java毕业设计源代码

    Java毕业设计源代码是针对计算机科学与技术专业学生在毕业阶段进行的一项重要实践,它旨在检验和提升学生的编程技能、软件工程知识以及问题解决能力。Java作为一种广泛应用的面向对象编程语言,因其强大的跨平台特性...

    Java企业日常事务管理系统论文+源码.rar

    Java企业日常事务管理系统论文+源码Java企业日常事务管理系统论文+源码Java企业日常事务管理系统论文+源码Java企业日常事务管理系统论文+源码Java企业日常事务管理系统论文+源码Java企业日常事务管理系统论文+源码...

    java程序设计百事通

    《Java程序设计百事通》是由知名IT教育专家张洪斌编著的一本全面解析Java编程的指南。这本书深入浅出地介绍了Java语言的核心概念、语法特性以及实际应用,旨在帮助初学者快速掌握Java编程技能,并为有经验的开发者...

    Java Web程序设计教程.pdf

    标题《Java Web程序设计教程》与描述《Java Web程序设计教程 Java Web程序设计教程》中的知识点主要涵盖了Java Web应用开发领域的核心技术与实践。本书作为21世纪高等学校计算机规划教材,由范立锋与林果园共同编著...

Global site tag (gtag.js) - Google Analytics