`

表现层、持久层、业务层

阅读更多

为了实现web层(struts)和持久层(Hibernate)之间的松散耦合,我们采用业务代表(Business Delegate)和DAO(Data Access Object)两种模式。DAO模式为了减少业务逻辑和数据访问逻辑之间的耦合,当一个持久曾框架被应用时,该模式将会减少业务对象和该框架之间的耦合,这样我们可以不修改业务对象而选择不同的持久层框架的实现。实际上在DAO模式中包含两种结构模式:桥(Bridge)模式和适配器(Adaptor)模式。

对表现层,我们使用 Struts ;业务层使用 Spring ;对于持久层我们使用的是 Hibernate 。你尽可以取代这里的某个框架而使用你喜欢的框架已达到同样的效果。下图显示了框架被整合起来时,从最高层次看到的视图。

应用层

    许多设计良好的web应用,可以被按职责分为四层。这些层次是表现层、持久层、业务层、和领域模型层。每一个层次都有其独特的职责,不能把各自的功能与其它层次相混合。每一个应用层都应该和其它层隔离开来,但允许使用接口在层间进行通信。我们开始来看看每个层,并讨论一下它们各自都应该提供什么和不应该提供什么。

表现层

    一个典型的web 应用的末端是表现层。许多Java 开发者都知道Struts提供了什么东西。然而,太多时候,耦合代码比如业务逻辑被放进org.apache.struts.Action中。所以,我们先总结一下Struts之类的框架应该提供什么。下面就是

 

Struts 的职责所在:
1. 管理用户的请求和响应
2. 提供一个控制起来将调用委托到业务逻辑和其他上游处理
3. 将来自于抛出例外的其他层的例外处理到Struts Action 中
4. 组装可以在视图中表现的模型对象
5. 执行UI 校验

 

下面是一些经常可以使用Struts进行编码但是不应该和表现层关联的事情:
1. 直接和数据库交互,比如JDBC 调用
2. 与应用相关的业务逻辑和校验
3. 事务管理


在表现层中引入这些类型的代码将导致类型耦合和维护负担。

持久层

    一个典型Web应用的另一端是持久层。这也是应用中最容易很快失控的地方。开发者通常低估了自己构建自己的持久层框架的挑战。一个定制的,内部开发的持久层不仅需要大量的开发时间,并且通常缺乏功能和难以管理。目前有许多解决这些问题的开源对象关系映射 (ORM) 框架。特别地,Hibernate 框架就允许Java中的对象-关系的持久性和查询服务。Hibernate 对已经熟悉了SQL 和JDBC API的Java开发者来或具有中度的学习曲线。Hibernate 的持久对象基于POJO和Java群集(collections)。此外,使用Hibernate 不和你的IDE接口。下面列出了你需要在持久性框架中编写的代码类型:

1. 查询关系信息到对象中。Hibernate是通过称为HQL的OO查询语言,或者使用更有表现能力的规则API,来完成这个工作的。除了使用对象而不是表,使用字段而不是列的方式,HQL非常类似于 SQL。也有一些新的特定的HQL 语言特征需要学习;但是,它们是很容易理解和良好编写的。HQL是一种用于查询对象的自然语言,而对象,只需要很少的学习曲线吧。.
2. 存储、更新和删除存储在数据库中的信息
3. 高级的对象关系映射框架比如Hibernate支持大部分主流SQL数据库,它们支持父/子关系,事务,继承和多态。

 

下面是应该在持久层避免的一些事情:
1. 业务逻辑应该置于应用的更高层中。这里只允许数据访问方法。
2. 不应该使持久逻辑和表现逻辑耦合。避免表现组件如JSP或者基于servlet的类中的逻辑直接和数据访问进行通信。通过将持久性逻辑隔离在其自己的层中,应用将具有更加灵活的修改性而不影响到其他层的代码。例如, Hibernate可以使用其他持久框架和API代替,而不需要修改其它层中的代码。

 

业务层应该负责下面的问题:

1. 处理应用的业务逻辑和业务校验
2. 管理事务
3. 允许与其他层进行交互的接口
4. 管理业务级对象之间的依赖性
5. 加入了表现和持久层之间的灵活性,以便它们不需要彼此进行直接通信
6. 从表现层暴露上下文给业务层以获得业务服务
7. 管理从业务层到表现层的实现

 

分享到:
评论

相关推荐

    基于JAVA struts+hibernate实现的网络购物系统的毕业设计,该系统采用MVC三层架构,分离了表现层、业务逻辑层和

    该系统采用了三层架构,分别是表现层、业务逻辑层和数据持久层。 表现层使用Struts框架,通过MVC模式实现用户与系统的交互,主要包含商品展示、购物车、下单、支付等功能模块。其中商品展示模块查询商品信息并展示在...

    网上书城需求分析(免费版)

    制层、业务层、持久层。 表现层:主要负责用户交互和结果显示,交易系统和管理系统有不同的 URL 入口界面, 详细设计参考“GWAP DEMO”。 控制层:主要负责系统的访问控制、数据加载和注销,是系统的核心控制单元。...

    棒的J2EE资料 优秀的企业应用

    很好的hibernate 很好的案例 很好的struts 很好的spring

    基于J2EE轻量级架构购书系统的设计与实现

    系统采用基于J2EE架构的三层体系结构,即表示层、业务逻辑层和持久层。...级架构的实现方式,并详细阐述了表现层、业务逻辑层、持久层所用技术与实现过程, 设计并实现了基于J2EE轻量级架构的购书系统。

    BOOT客户管理系统(源码+数据库).zip

    持久对象层(持久层):该层由若干持久化类(实体类)组成 数据访问层(DAO层):该层由若干的DAO接口和Mybatis映射文件组成,接口和映射文件名必须一致 业务逻辑层(Service层):该层由若干Service接口和实现类组成...

    javaee客户管理系统

    持久对象层(持久层):该层由若干持久化类(实体类)组成 数据访问层(DAO层):该层由若干的DAO接口和Mybatis映射文件组成,接口和映射文件名必须一致 业务逻辑层(Service层):该层由若干Service接口和实现类组成。...

    web三层架构体系 web架构

    三层架构即―表现层‖,―业务层‖,―持久化层‖。表现层实现的代表作品是Struts框架,业务层实现的代表作品是Spring,持久层实现的代表作品是Hibernate。

    java/jdbc简单的ebank电子银行系统

    mySQL实现数据库的增删查改操作。 需求: ...数据库设计 提供帐户表以保存帐户数据 ...实体设计 ...业务逻辑设计 ...分层就是对功能的隔离,...横向分层(业务层与持久层按抽象程度分): 抽象层 实现层 表现层不需要再进行横向分层

    创建灵活易扩展的J2EE企业应用程序框架

    一 个典型的J2EE的应用,至少应该包括以下三部分:表现层,业务逻辑层和数据持久层,为了更加容易地创建企业应用程序,许许多多的Framework涌现 出来,表现层我们可以选择Struts, JSF, Tapestry, WebWork, Velocity...

    JAVA SMART系统-系统框架设计与开发(源代码+论文).rar

    整个系统的框架分为三层,分别为表现层、业务层和持久层。 本系统的表现层是基于Struts作扩展设计,结合本系统的需求完成了自定义标签的封装,基本action接口的编写。在业务层则是采用单例模式设计与Spring的IoC模式...

    SSH蓝龙OA易办系统

    分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。表示层采用...

    一个空的SSH框架,同时也支持servlet。扩展性能强,灵活度高。

    自己为一个汽车MIS系统架构的一个框架,主框架为SSH,同时根据需要扩展了servlet和JDBC(适应于大数据量查询),典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问...

    精通hibernate:对象持久化技术孙卫琴第二版part2

    业务数据在内存中表现为实体域对象形式,而在关系数据库中表现为关系数据形式。数据访问代码负责把实体域对象持久化到关系数据库中。 2.1 直接通过JDBC API来持久化实体域对象 21 .2.2 ORM简介 27 2.2.1 对象-...

    论文研究-图书馆后台信息管理系统 .pdf

    图书馆后台信息管理系统,杜航,,系统整体是基于NEO开发框架,它具有典型的Java Web开发分层,表现层,控制层,业务逻辑层,数据持久层。开发技术主要包括FreeMarker、Web

    基于JAVA SMART系统-系统框架设计与开发(毕业设计+lw)

    整个系统的框架分为三层,分别为表现层、业务层和持久层。 本系统的表现层是基于Struts作扩展设计,结合本系统的需求完成了自定义标签的封装,基本action接口的编写。在业务层则是采用单例模式设计与Spring的IoC模式...

    SMART系统-系统框架设计与开发(JAVA)

    整个系统的框架分为三层,分别为表现层、业务层和持久层。 本系统的表现层是基于Struts作扩展设计,结合本系统的需求完成了自定义标签的封装,基本action接口的编写。在业务层则是采用单例模式设计与Spring的IoC模式...

    JAVA SMART系统-系统框架设计与开发(源代码+论文)

    整个系统的框架分为三层,分别为表现层、业务层和持久层。 本系统的表现层是基于Struts作扩展设计,结合本系统的需求完成了自定义标签的封装,基本action接口的编写。在业务层则是采用单例模式设计与Spring的IoC模式...

    -SMART系统-系统框架设计与开发.zipspringbootSMART系统是一个新型智能在线考试信息管理系统,该系统主要实现

    整个系统的框架分为三层,分别为表现层、业务层和持久层。 本系统的表现层是基于Struts作扩展设计,结合本系统的需求完成了自定义标签的封装,基本action接口的编写。在业务层则是采用单例模式设计与Spring的IoC模式...

    SMART系统-系统框架设计与开发

    整个系统的框架分为三层,分别为表现层、业务层和持久层。 本系统的表现层是基于Struts作扩展设计,结合本系统的需求完成了自定义标签的封装,基本action接口的编写。在业务层则是采用单例模式设计与Spring的IoC模式...

Global site tag (gtag.js) - Google Analytics