JSF集成Spring Framework和Hibernate开发实例 联系客服

发布时间 : 星期六 文章JSF集成Spring Framework和Hibernate开发实例更新完毕开始阅读f1cc5f0e76c66137ee061945

JSF集成Spring Framework和Hibernate开发实例

使用JSF建立一个真实的Web应用程序不是没有意义的任务,这篇文章介绍了如何将JSF与Sping Framework和

Hibernate集成,并且给出了使用这些技术建立这个真实的Web应用程序的最佳实践和设计指导

JavaServer Faces(JSF)技术是J2EE应用程序的一个新的用户接口框架,它非常适合基于

MVC(Model-View-Controller)体系结构的应用程序。已经有大量的文章介绍JSF。然而,很多文章都是站在理论研究的层面上,没有挑战一个真实的企业开发。很多问题没有解决,例如,JSF怎样全面适合MVC体系结构?JSF如何与其他JAVA框架集成?业务逻辑应该放在JSF的backing beans里面吗?怎样处理JSF里面的安全问题?最重要的是你怎样使用JSF建立一个真实的Web应用程序?

这篇文章涉及所有这些问题。它向你展示如何集成其他特定的Java框架,Spring Framework和Hibernate,

它示范怎样去创建一个叫JCatalog的Web应用程序,一个在线的产品目录系统。这篇文章使用JCatalog例子,介绍了Web应用程序设计的每一个阶段,包括业务需求收集,分析,技术选择,高层体系结构和详细设计。这篇文章论述了JCatalog里面好的和不好的技术,示范了应用程序设计中一些关键方面的方法和步骤。

这篇文章是写给正在从事基于J2EE Web应用程序的Java架构师,开发者,它不是对JSF、Spring Framework

和Hibernate的入门教程。如果您对这些领域不熟悉,请参考文章最后的资源链接。

例子应用程序的功能需求

这篇文章的例子应用程序JCatalog是一个真实的Web应用程序,例子足够现实是为了决定应用程序架构而

进行意味深长的讨论的基础。我通过介绍JCatalog项目的需求开始。我在这里谈到后面贯穿于整个文章的内容是为了演示技术选择和体系结构设计。

设计Web应用程序的第一步是收集系统的功能需求,这个例子应用程序是一个典型的电子商务应用系统。用户能浏

览产品目录和查看产品细节,管理员能管理产品目录。功能还可以增加,举例来说,为了开发一个成熟的电子商务系统,可以添加库存管理和订单处理的功能。

用例

用例分析被用于去访问例子应用程序的功能需求,图1是应用程序的用例图。

图1 用例图

一个用例图确定在一个系统中的参与者以及参与者可以执行的操作。例子应用中7个用例必须被实现。参

与者中的User能浏览产品目录和察看产品细节。一旦用户以Administrator身份连接到系统,他就能创建新产品,编辑存在的产品,删除老的产品。

业务规则

JCatalog 必须符合下面的业务规则: 每个产品有一个唯一的产品ID 每个产品至少属于一个目录 产品ID一旦被创建就不能改变 假定

对于产品的设计和实现,我们做下面的假定。 英语是默认语言;不要求国际化 目录中不超过500种产品 目录的更新不频繁 页面流

图2显示了所有JCatalog的页面和它们之间的转换。

图2 页面流图

应用程序有两组页面:公共的国际互联网和管理员的企业内部网。企业内部网只有对那些成功登陆到系统的用户有效。产品概要页面是公用的,它作为产品目录的内容包含在一个HTML框架里面。产品列表是一个特殊的目录,只能被管理员看见,它包含创建、编辑和删除产品的链接。

图3是目录页的一个模型。理想情况下,每一个页面所有的控制和必要的内容明细的模型应该被包含在需求文档里面。

图3 目录页面模型

高级体系结构设计

下一步的设计是Web应用程序的高级体系结构设计,它包括将应用程序细分成功能组件以及将这些组件划分到各自

所属的层。高级体系结构设计独立于使用的技术。

多层体系结构

一个多层体系结构将整个系统划分成清晰的单元——客户端、表示层、业务逻辑层、集成层和企业信息系统(EIS),

这保证了清晰的责任划分以及可维护性和可扩展性。三层或多层系统已经被证明比没有业务逻辑层的客户-服务器系统具有更多的可升级性和柔韧性。

客户端是数据模型被消费和呈现的地方。对于一个Web应用程序,客户层通常是Web浏览器。基于浏览器的瘦客户

不包含表示逻辑;它依赖于表示层。

表示层使用业务逻辑层为用户服务,它知道怎样去处理一个客户请求,怎样去和业务逻辑层结合以及怎样去选择下

一个试图去显示。

业务逻辑层包含一个应用程序的业务对象和业务服务。它从表示层接受请求,基于请求处理业务逻辑,作为访问EIS

层资源的的中介。业务逻辑层组件使用许多系统级别的服务,例如,安全管理、事物管理和资源管理。