在搭建系统的架构时我们采用了ssh+ajax 等方式构建的。我们一直说要层次分明,思路清晰,可现在都比较糟糕。
比如:JSP页面用来显示数据的,CSS用来美化页面,JS用来控制页面的。现在很多页面中什么都有了,臭味很多。
在后台我们也分了action,service,dao层,原本action用来控制调度的,service用来处理相关的业务逻辑的,dao中用来CRUD数据的。可现在出现了action包裹着一部分逻辑,service就非常简单了,就是用来调用dao中的方法,而dao中的方法即包裹了业务处理逻辑又包裹了CRUD数据处理。而且有的业务逻辑非常的复杂,涉及到的表操作很多,比如:
类似上面的方式,很多数人在大多数的时候都是这么弄的。我觉得这样做就把业务逻辑和数据处理混淆了,方法太臃肿了,有着浓浓的臭味,不便于维护。XP中提倡面向接口编程、分层、短小的方法。它这么一个长长的方法占用一个连接的时间太长(也就是整个事务的时间延长了),那么当其他的用户对相关的表进行请求时,就会出于等待的状态,资源的竞争,如果长时间是这样死锁就出现了。:(
一般会把他们分布在不同的方法中。
这样我的每一个dao中的方法就会用到不同的SESSION(不同的CONNECTION),是这样的吗?但是我是通过SPRING对service层进行事务处理的呀,那是不是说明两种方式都会要占用同样的事务处理资源?
看到那些贫血的SERVICE我就郁闷,现在我有检查代码是否存在问题我也迷茫,这事情做的太少了。很多时候我们只顾一直往前跑,没有时间回头看。其实,我们要经常的code view,使用TDD开发模式,用XP的小步发布,这样不要让代码的味道变的太坏,也对自己写的代码充满信心,和用户交流底气十足。开发出来的系统,用户满意,市场行情看涨。:)
现在我明白了整 个业务方法调用过程中都是使用同一个SESSION(Connection)。至于业务逻辑怎样来平衡分布,是不是可以把一部分放到ACTION,一部分放到service,Dao只负责和数据库处理。对只读的事务我对其只用readOnly。
比如:我上面的例子是不是可以变成如下的样子呢?
我们希望能够更快的结束事务,避免不必要的阻塞,保证系统有更好的性能。
分享到:
相关推荐
SSH架构搭建,SSH架构
实例讲解SSH技术架构
UnitWorkUnitWorkUnitWUnitWorkorkUnitWork
ssh java 使用SSH架构实现《青鸟租房》ssh java 使用SSH架构实现《青鸟租房》
SOA-SSH分层架构的设计与应用word版本.docxSOA-SSH分层架构的设计与应用word版本.docxSOA-SSH分层架构的设计与应用word版本.docxSOA-SSH分层架构的设计与应用word版本.docxSOA-SSH分层架构的设计与应用word版本....
SOA-SSH分层架构的设计与应用word版本.pdfSOA-SSH分层架构的设计与应用word版本.pdfSOA-SSH分层架构的设计与应用word版本.pdfSOA-SSH分层架构的设计与应用word版本.pdfSOA-SSH分层架构的设计与应用word版本.pdfSOA-...
J2EE SSH2架构设计 Struts2.1.8+Spring2.5.6+Hibernate3.3整合,采用AOP事务管理方式
java ssh 架构说明
架构规范 SSH 框架 架构规范 SSH 框架
实例讲解SSH技术架构.pdf
实例讲解SSH技术架构.doc实例讲解SSH技术架构.doc实例讲解SSH技术架构.doc实例讲解SSH技术架构.doc实例讲解SSH技术架构.doc实例讲解SSH技术架构.doc实例讲解SSH技术架构.doc
ssh架构实现登陆,使用Oracle数据库,仅供参考
使用SSH构建Web应用系统使用SSH构建Web应用系统使用SSH构建Web应用系统
ssh框架的架构 文档ssh框架的架构 文档ssh框架的架构 文档ssh框架的架构 文档ssh框架的架构 文档ssh框架的架构 文档ssh框架的架构 文档ssh框架的架构 文档ssh框架的架构 文档ssh框架的架构 文档ssh框架的架构 文档...
SSH搭建
Java中搭建SSH架构的常用jar包全在里面了。2009.11.03
SSH架构技术详解,人性化分析,附架构说明图。
J2EE SSH2架构 Spring2.5.6+Struts2.1.8+hibernate3.3 采用struts2、spring2.5、hibernate3设计的demo集成
J2ee Struts,Spring Framework,Hibernate 经典结合,项目源码。控制层、数据层、业务层分层 架构经典搭配,学习、研究的好东西。