我写的项目架构,实在很困惑

10-05-27 shangtang004
项目采用B/S(浏览器/服务器)结构。项目基于Java开发,采用SSI框架(Struts 2+ Spring + Ibatis的组合框架模式),分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。

其中,表现层除了采用传统的JSP和AJAX技术外,因本项目中有线路图形的功能要求,图形部分的功能实现采用Adobe Flex,属于RIA(富互联网应用)技术范畴。

中间层采用的是Spring+Ibatis,为了将控制层与业务逻辑层分离,又细分为以下几种:

Web层,就是MVC模式里面的“C”(controller),负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC框架采用Struts2。

Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。

DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。

PO,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用Ibatis作为ORM框架。

Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。

spring到也不是业务层框架?

struts2是web层技术吗?

我认为web层应该是html,css,javascript.

spring是提供了系统的整体架构哟。

上面我自己看得很别钮

banq
2010-05-27 11:32
参考这篇文章:

解放思想,走出传统三层架构的束缚

shangtang004
2010-05-27 12:41
banq大哥,想让你看看我写的项目架构的 错误之处,

进出三层架构束缚,

我的理解是,领域对象是由一组互相协作的对象来完成的,这一组协作 的对象就是servie,po,dao,至于为什么分开,我想是结构上的清晰,便于维护。

还有那文章说得 领域对象要缓存,对象的状态有成千上万个,但行为同一类对象是一样的。这样缓存行吗?

猜你喜欢