Put JSF to work 1
来源:网络 更新时间:2014-12-16
Put JSF to work
使用JSF, Spring, Hibernate构建一个实际的web应用
概要:
使用JSF, Spring, Hibernate构建一个实际的web应用并不是毫无意义的事情。本文向你展示了如何整合JSF, Spring和Hibernate,以及使用这些技术构建实际web应用的最佳实践和设计方针。
作者: Derek Yang Shen
翻译: rongsantang
JavaServerFaces(JSF)技术是面向J2EE应用的新的UI(user interface)框架。它天生地非常地适用于基于MVC架构的应用程序。无数的文章已经介绍过JSF,然而大多数都是很理论地介绍,并没有涉及到实际企业应用开发遇到挑战。很多的问题并没有解决,比如:JSF如何融于总的MVC体系结构中?JSF如何同其他的Java框架整合?业务逻辑是否应该存在于JSF的backing beans中?你在JSF中如何处理安全问题?最重要的是你如何使用JSF构建一个实际的web应用?
本文将涉及所有的这些问题。它将向你展示如何整合JSF同其他的Java框架(也就是Spring和Hibernate)。本文展示了如何创建一个在线的产品目录系统---JCatalog web应用程序。通过JCatalog这个例子,这篇文章覆盖了Web应用程序设计的每一个阶段,包括业务需求收集,分析,技术选择,总体架构和实现级别的设计。这篇文章讨论了JCatalog中使用的技术的优缺点,展示了应用程序关键方面的设计方法。
这篇文章是面向Java架构师和基于J2EE的web应用程序开发者。它并不会介绍JSF, Spring和Hibernate,如果你不是很熟悉,请查看资源一栏。
一,示例程序的功能需求
本文的示例程序JCatalog是一个实际的Web应用程序,对于我们讨论Web应用程序的体系结构来说,它是足够现实的。我们以介绍JCatalog的需求开始,在贯穿本文的技术抉择和体系结构设计中,我们会经常返回查阅本节的内容。
设计一个Web应用的第一步就是收集系统的功能需求。示例程序是一个典型的e-business应用系统。用户可以浏览一个产品目录,查看产品的详细信息;管理员则可以管理产品目录。作为扩展,存货管理和订单处理可以被加入应用使应用成为一个成熟的e-business系统。
Use cases(用例)
用例分析是用来了解示例程序的功能需求。
一个用例图确定了在系统中的参与者以及它们能够执行的操作,七个用例必须在示例程序中实现。User可以浏览产品目录,查看产品的详细信息。如果一个User登陆了系统,他就变成了一个Administrator,就可以创建新的产品,编辑已存在的产品,删除老的产品。
Business rules(业务规则)
JCatalog必须符合以下的业务规则:
l 每一个产品都有一个唯一的产品ID;
l 每一个产品至少属于一个类别;
l 产品ID一旦创建就不能改变;
Assumptions(假定)
对于系统的设计和实现我们做以下的假定:
l 英语是默认的语言;不需要国际化支持;
l 在目录中不会有超过500个商品;
l 目录的更新不频繁;
Page flow(页面转移)
JCatalog的页面以及页面间的跳转。
应用程序有两组页面:public Internet和administration intranet。Intranet仅仅对成功登录系统的users是可见的。ProductSummary不会作为一个单独的页面呈现给users,它是作为Catalog页面中的一个HTML frame呈现的。ProductList是一个只能被administrator可见的特殊目录,它包含了创建,编辑,删除商品的连接。