框架构建 Portlet 应用
郭睿 ,IBM 信息工程师2005 年 8 月 18 日在最近的Web应用开发中,Hibernate,Spring,Struts框架做为开源的轻量级框架,正被越来越多的开发者使用,而如何将这些框架集成起来,应用到WebSphere..
郭睿 ,IBM 信息工程师
2005 年 8 月 18 日
在最近的Web应用开发中,Hibernate,Spring,Struts框架做为开源的轻量级框架,正被越来越多的开发者使用,而如何将这些框架集成起来,应用到WebSphere Portlet开发中去,将是本文讨论的内容。本文还描述了将这些框架应用到Portlet上的时候,遇到的一些细节问题。
引言
Hibernate是最近比较流行的一个用来处理O/R Mapping的持久层框架。它的工作原理是通过文件把值对象和数据库表之间建立起一个映射关系,这样,我们只需要通过操作这些值对象和Hibernate提供的一些基本类,就可以达到使用数据库的目的。使用Hibernate可以很好的将持久层和逻辑层进行隔离。请参阅参考资料一节获得更多Hibernate框架的信息。
Spring框架是一个包含了MVC层,中间层和持久层管理的框架,其核心模块是bean管理,现在很多的应用都采用Spring的bean管理机制来管理其逻辑层。请参阅参考资料一节获得更多Spring框架的信息。
Struts框架是Apache Jakarta项目的一部分,它为构建Web应用程序提供了很流行的MVC框架。WebSphere Portal V5提供了Struts Portlet框架,这个框架针对Portlet应用,将Struts的类包和taglib在URL生成,URL解析等处,做了自己的改写,使Portlet框架也可以支持Struts应用,将其作为Portlet来部署。
本文将通过构建一个使用Hibernate,Spring,Struts框架的Portlet应用,来描述如何在Portlet应用中使用这些框架。对于那些并不熟悉使用这些框架进行开发的Web应用程序的读者来说,本文提供了足够的信息使您可以掌握一些基础知识。但本文并不是一篇介绍如何使用这些框架的教程。
在本文中讨论的应用程序的开发或部署中用到了以下产品:
WebSphere Portal 5.0.2.2
WebSphere Studio Application Developer 5.1.2
请您注意!如果您的部署服务器Portal Server的版本低于5.0.2.2,您在部署web.xml的时候,在过滤器设置上将会遇到问题导致不能部署,从而无法通过设置过滤器来解决应用程序的中文问题。如果您的开发环境低于WebSphere Studio Application Developer 5.1.2,您可能不能得到本文中所述的Struts Portlet的全部支持。


示例应用程序
我们的示例应用程序将实现对一组持久数据的标准的创建、读取、更新、删除(Create/Read/Update/Delete,CRUD)操作。这个示例应用程序为一个新闻编辑程序,用户可以在列表中查看新闻,并新建,修改,删除新闻。
虽然这个示例应用程序是一个比较简单的应用,但为了更好的阐述Hibernate,Spring和Struts的作用范围,我们还是将这个应用程序进行分层的阐述:
应用程序的分层
和通常大多数的Web应用程序一样,本应用程序分为四层,这四层是:presentation(描述),business(业务),persistence(持久)和domain model(域模型)。
表示层(The Presentation Layer)
一般来讲,一个典型的Web应用的的末端应该是表示层。用来管理用户的请求,做出相应的响应,给出显示。在这里,我们使用了Struts Portlet框架来实现本应用程序的表示层。
域模型层(The Domain Model Layer )
域模块层由实际需求中的业务对象组成,即我们常说的BO(Business Object) 比如, Order , Pet等等。 开发者在这层 不用管那些DTOs,仅关注domain object即可。 例如,Hibernate允许你将数据库中的信息存放入对象(domain objects),这样你可以在连接断开的情况下把这些数据显示到UI层。 而那些对象也可以返回给持久层,从而在数据库里更新。
业务层(The Business Layer)
一个典型Web应用的中间部分是业务层或者服务层。这一层最容易受到忽视,从而导致大量的代码紧密的耦合在一起,从而使整个程序变的难以维护。在这里,我们使用Spring框架来解决这个问题,Spring把程序中所涉及到包含业务逻辑和Dao?的Objects--例如transaction management handler(事物管理控制)、Object Factories(对象工厂)、service objects(服务组件)--都通过XML来配置联系起来,从而使业务层变得非常灵活和易于维护。
[8] [9]
