`
container
  • 浏览: 3773 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

关于Spring,EJB以及事物

阅读更多

最近在开发过程中遇到了事物处理的问题,目前项目的代码中对事物的处理存在各种各样的问题:


1、事物边界不明确。具体表现在:有些程序员将事物是写在DAO里面的,而有些是写在Service层的,有些是在控制层(Servlet)的...


特别是写在DAO里面的会存在很大的问题,比如当某个DAO只是完成一系列操作的一部分的时候,在他内部却将整个事物提交了,可能会造成数据的不完整性。


后来花了很大的力气,统一将事物(边界)放在Service层。考虑到一个Service基本上可以看做是一个完整的业务逻辑,所以事物(的边界)放在Service层是比较合理的。


但是还是可能会存在一些问题,比如一个Service只是其他Service的一部分....如果在Service内部将事物提交了,还是会影响数据的完整性....

 

2、事物的回滚写的乱七八糟的!


3、事物过长。主要表现在两个方面:


1)表结构比较复杂,完成一个业务逻辑,需要操作很多个表,这个时候不得不将事物拉长,如果并发量大了,很容易造成死锁的现象。

2)有些程序员代码写的不规范,在一个方法的开始就conn.setAutoCommit(false);,而下面还要做N多与事物无关的操作!这样无疑是人为的拉长了事物的时间。


---------

在解决以上两个问题,特别是确定事物边界的时候,感觉非常的头痛,这个时候想到只有一个比事物更高层次的东西,才能去合理的、有效的管理这些事物!---这不就是EJB/Spring中的事物管理容器吗?!


想想Spring中的声明式的事物....整个代码看不到一句conn.setAutoCommit(false);....

哎,感叹一下,继续我的JDBC吧。


----------

开源框架之所以出现并流行,是有其道理的,是程序员们在长期"斗争"总结出解决问题(比如上面提到的事物问题)的方法,经验。要学习其精华!

 

--------------

解耦--开发可维护,可扩展,可复用的代码

分享到:
评论

相关推荐

    POJO Application Frameworks_ Spring Vs. EJB 3

    该标题与描述指出了一篇关于POJO(Plain Old Java Object)应用框架的文章,主要对比了Spring框架与EJB 3.0(Enterprise JavaBeans 3.0)。文章旨在深入探讨这两种框架在企业级Java应用程序开发中的应用,以及它们...

    Jboss事物处理

    本项目“HornetQ-JBoss-TS-MySQL-Tomcat-Spring-master”就是一个关于Jboss事物处理的实践案例,涵盖了多个关键组件。 首先,**HornetQ**是JBoss的一个开源消息传递系统,它提供了高性能、高可用性和可扩展性的消息...

    (事物学习笔记二) 对Java事物的理解

    本文将深入探讨“事物学习笔记二”中关于Java事务的理解,旨在帮助读者更好地掌握这一关键概念。 首先,事务(Transaction)是数据库操作的基本单位,它确保一组数据库操作要么全部成功,要么全部失败,从而保证...

    事物管理javaweb.zip

    在"事物管理javaweb.zip"中,可能包含的详细内容有:JDBC事务示例代码、EJB事务配置、Spring事务管理的配置文件和注解使用、事务隔离级别的解释与选择、分布式事务的实现机制等。学习这些内容可以帮助开发者更好地...

    CGB_面试题_第三阶段(1).docx

    优点在于能够实现全局事务的控制,通过 EJB CMT 进行事物的管理;缺点在于事务声明有编程式事物和申明式事物。 10. MyBatis 应用 MyBatis 是一个持久层框架,提供了动态 SQL 机制,可以解决固定的 SQL 语句不能...

    Java软件工程师简历.pdf

    工作经历方面,工程师曾在加拿大达内科技(中国)公司实习,参与了网络运营支撑系统(NetOss)的开发,这是一个基于J2EE架构、使用Struts、Hibernate、Spring技术以及Oracle 9i数据库的项目。他主要负责管理员管理...

    J2EE开发架构小结.doc

    此外,EJB容器提供了企业级特性,如集群、容错和灾难恢复,以及异步通信机制。但这种实现方式的缺点是开发难度大,实体Bean的不当使用可能导致性能下降,且对开发环境的要求较高,软件可能依赖于特定的EJB容器,成本...

    java面试题

    3:创建事物 4:持久化操作 5:提交事务 6:关闭Session 7:关闭SessionFactory Hibernate持久化:Hibernate根据定义的映射规则将对象持久化保存到数据库,这就实现了对象的持久化。 Spring由那几个模块组成? ...

    java学习心得4000字.doc

    3. **Spring/EJB**: - **Spring**:作为轻量级的业务逻辑层框架,Spring在实际开发中的应用非常广泛。 - **EJB**:尽管EJB3的发布对其有一定的冲击,但在某些领域仍具有优势。 4. **XML/CSS**: - **XML**:...

    Java+Web项目企业事务管理系统源码 (1)Java源码

    9. **EJB(Enterprise JavaBeans)**:在企业级应用中,EJB提供了一种标准的方法来创建可部署的、组件化的服务器端应用,处理事务、安全性、并发性和资源管理等复杂问题。 10. **Tomcat服务器**:Tomcat是Apache...

    java软件工程师面试题题集

    Java 软件工程师面试题集涵盖了广泛的Java及相关技术领域,包括Core Java、面向对象设计与UML、XML、SQL、JDBC与Hibernate、Web开发、EJB与Spring、数据结构与算法、计算机基础,以及C++和Weblogic等相关知识。...

    Java就业培训教程(张孝祥编著)

    9. **Java EE(企业版)**:对于希望从事Web开发的读者,教程可能还会涉及Java EE相关的知识,如Servlet、JSP、JDBC、EJB、Spring框架等。 10. **实战项目**:为了巩固理论知识,教程通常会包含一些实战项目,如...

    可拓策略系统(房地产营销策略系统)

    系统可能采用了Spring框架来管理依赖和实现面向切面编程,使用Hibernate或MyBatis等持久层框架来处理数据库操作,以及使用JavaScript和jQuery等前端技术来增强用户体验。 在压缩包文件“可拓-web”中,可能包含了...

    java 案例

    描述中的"关于Java一些应用程序"暗示我们将讨论Java在实际应用中的用法,可能包括桌面应用、Web应用、移动应用或企业级应用。 首先,让我们从基础开始。Java的核心概念包括类、对象、接口、继承、封装和多态性。类...

    将SHIRO作为应用的权限基础一:SHIRO的整体架构.pdf

    与Spring Security相比,虽然Spring Security更为成熟,但在单个应用中,Shiro的简洁性和易用性可能更胜一筹。Shiro的设计使其能够独立于任何框架或容器运行,这使得它成为许多小型和中型项目的选择。 了解Shiro的...

    TeamWork-JLU_info_sys:五个同性恋者共同努力,创造出伟大的事物

    JAVA EE技术jsp Javabean 小服务程序JNDI :使用配置文件配置数据库方便使用的规范JPA :用于定义和数据库交互的类的规范-Hibernate框架-​​SpringData jpa(springboot模块) JMS :用于异步通信的规范(适用于c /...

Global site tag (gtag.js) - Google Analytics