`
Tyrion
  • 浏览: 261800 次
  • 性别: 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事务设计策略及其相关知识点。 1. **Java事务管理层次** - **JDBC事务管理**:通过Connection对象的commit()和rollback()方法进行控制,适用于简单场景。 - **容器管理事务(CMT)**:如EJB或...

    java事务设计模式

    Java事务设计模式是系统开发中不可或缺的一部分,尤其是在大型分布式系统中,确保数据的一致性和完整性至关重要。本设计模式主要关注如何在Java环境中有效地管理和协调事务,以满足ACID(原子性、一致性、隔离性、...

    Java 设计模式 策略模式

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

    java事务 - 使用动态代理

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

    毕业设计—基于Java的Acme班级事务管理系统.zip

    毕业设计—基于Java的Acme班级事务管理系统,已获老师指导并通过的高分项目。 毕业设计—基于Java的Acme班级事务管理系统,已获老师指导并通过的高分项目。毕业设计—基于Java的Acme班级事务管理系统,已获老师指导...

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

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

    java开发详细设计文档模板

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

    Java程序设计习题集下载

     实用性:《Java程序设计习题集》每章都含有一些趣味题,营造了一种轻松而快乐的学习氛围,努力培养和提高学生的学习乐趣,同时也使学生容易产生学习成就感。  趣味性:习题基本上覆盖了程序员在编写Java程序时...

    java web设计模式

    Java Web设计模式是一种在开发基于Java的Web应用程序时遵循的成熟解决方案,它们是解决常见问题的最佳实践。设计模式提供了一种标准的、可重用的方法来组织代码,提高可读性、可维护性和可扩展性。以下是Java Web...

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

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

    15个经典的java课程设计

    在Java编程的学习过程中,课程设计是提升技能和理解能力的重要环节。这个名为“15个经典的java课程设计”的资源包提供了丰富的实践项目,旨在帮助学习者深入理解和应用Java语言的核心概念。下面,我们将详细探讨这些...

    java设计模式之策略模式

    java设计模式之策略模式,详细的描述了策略模式的特征和思路

    Java Transaction Design Strategies.pdf

    《Java Transaction Design Strategies》是一本专注于Java事务设计的专业书籍,由Mark Richards编写。本书详细介绍了Java应用程序中的事务处理策略和技术,帮助开发人员更好地理解和实现复杂的企业级应用中的事务...

    计算机后端-Java-图解java设计模式141 策略模式(2).avi

    计算机后端-Java-图解java设计模式141 策略模式(2).avi

    计算机后端-Java-图解java设计模式144 策略模式(5).avi

    计算机后端-Java-图解java设计模式144 策略模式(5).avi

    Java设计模式综合应用场景

    【Java设计模式综合应用场景】 Java设计模式是一种在特定情境下解决软件设计问题的通用解决方案,它们代表了在软件设计过程中经过验证的、可重用的、面向对象的设计思想。在这个实验报告中,主要讨论了三种设计模式...

    200道Java程序设计练习题 PDF

    Java程序设计是软件开发领域中的基础且至关重要的部分,它为开发者提供了强大的工具来构建复杂的应用系统。"200道Java程序设计练习题 PDF" 是一个宝贵的资源,旨在帮助学习者从初级到高级逐步提升Java编程技能。这份...

    JAVA-设计模式-行为型模式-策略模式

    JAVA-设计模式-行为型模式-策略模式

    《JAVA与模式》之策略模式

    javase 设计模式的strategy pattern《JAVA与模式》之策略模式详解

Global site tag (gtag.js) - Google Analytics