| 订阅 | 在线投稿
分享
 
 
 

Struts+Spring+Hibernate 分析

来源:互联网  宽屏版  评论
2007-02-07 12:18:48

现在给美国老作项目,他们那边要求一定要用"Struts+Spring+Hibernate"来实现,下面就是我对它们组合的理 解:

1,先说说表示层

其实没有必要使用struts,除非你有历史遗留问题不得不用struts,因为spring的mvc已经足够好了:

a. 清晰的模型对象传递,这个模型对象可以是任何java对象,如果你不在意在各层之间传递同一个对象的

话,这个模型对象就可以是hibernate的persistent object,通过open session in view,你可以以一致的方式使用业

务模型对象。

b. reference data,让你清晰的处理look up数据。

c. 多种可供选择的视图解析类型,可以在prpperties文件中定义page的逻辑名,或者定义在xml文件里的struts

tiles逻辑名。

d. 无干扰的数据绑定,一个<spring:bind>可以对模型对象和form进行绑定,就像struts自动填充formbean一样,但

spring 的绑定功能不会干扰界面布局,也就是说,你仍然可以使用html编辑器对页面进行处理。

e. 客户端验证。

f. 服务器端验证。

g. 多种可供选择的控制器,其中支持表单的控制器提供了类似vb中表单事件处理的功能,这是一系列的

workflow,在你认为合适的地方,插入你的处理代码。

spring mvc与struts比较,可能只是少了很多taglib和页面布局,但这都可以通过第三方工具补充,因为视图相比于其他部分,毕竟更轻量级一些。可以选择的第三方工具可以是:displaytag,struts-menu,struts tiles,等等。

2,在说说业务逻辑部分

业务逻辑类可以用spring的beans进行配置,并由spring管理与表现层的控制器及更下层的DAO对象的关系。另外,还可以进行配置性的事务处理,一个interceptor配置,免去了你的所有烦恼。

3, dao层

用spring 封装后的hibernate API,让Hibernate继续瘦身,并且通过spring建立与上层的关系。

4, 最后,说说hibernate的po

你可以选择你喜欢的任何方式进行建模,以下工具提供了足够的支持:

a. 从java对象到hbm文件:xdoclet

b. 从hbm文件到java对象:hibernate extension

c. 从数据库到hbm文件:middlegen

d. 从hbm文件到数据库:SchemaExport

至于可供参考的项目,可以看看spring的例子petclinic(spring+hibernate),还有一个不可不看的网站:http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse(struts+spring+hibernate或spring mvc + spring +hibernate)。另外,spring带的mvc step-by-step是一个很好的入门教程。

需要说明的是,spring仅仅为我们提供了一种设计和实现框架的方式,因此,项目的成功与否,是与我们的构架设计紧密相关的,在有了好的设计思想以后,善用spring,会让我们的成功来的更容易。

现在给美国老作项目,他们那边要求一定要用"Struts+Spring+Hibernate"来实现,下面就是我对它们组合的理 解: 1,先说说表示层 其实没有必要使用struts,除非你有历史遗留问题不得不用struts,因为spring的mvc已经足够好了: a. 清晰的模型对象传递,这个模型对象可以是任何java对象,如果你不在意在各层之间传递同一个对象的 话,这个模型对象就可以是hibernate的persistent object,通过open session in view,你可以以一致的方式使用业 务模型对象。 b. reference data,让你清晰的处理look up数据。 c. 多种可供选择的视图解析类型,可以在prpperties文件中定义page的逻辑名,或者定义在xml文件里的struts tiles逻辑名。 d. 无干扰的数据绑定,一个<spring:bind>可以对模型对象和form进行绑定,就像struts自动填充formbean一样,但 spring 的绑定功能不会干扰界面布局,也就是说,你仍然可以使用html编辑器对页面进行处理。 e. 客户端验证。 f. 服务器端验证。 g. 多种可供选择的控制器,其中支持表单的控制器提供了类似vb中表单事件处理的功能,这是一系列的 workflow,在你认为合适的地方,插入你的处理代码。 spring mvc与struts比较,可能只是少了很多taglib和页面布局,但这都可以通过第三方工具补充,因为视图相比于其他部分,毕竟更轻量级一些。可以选择的第三方工具可以是:displaytag,struts-menu,struts tiles,等等。 2,在说说业务逻辑部分 业务逻辑类可以用spring的beans进行配置,并由spring管理与表现层的控制器及更下层的DAO对象的关系。另外,还可以进行配置性的事务处理,一个interceptor配置,免去了你的所有烦恼。 3, dao层 用spring 封装后的hibernate API,让Hibernate继续瘦身,并且通过spring建立与上层的关系。 4, 最后,说说hibernate的po 你可以选择你喜欢的任何方式进行建模,以下工具提供了足够的支持: a. 从java对象到hbm文件:xdoclet b. 从hbm文件到java对象:hibernate extension c. 从数据库到hbm文件:middlegen d. 从hbm文件到数据库:SchemaExport 至于可供参考的项目,可以看看spring的例子petclinic(spring+hibernate),还有一个不可不看的网站:http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse(struts+spring+hibernate或spring mvc + spring +hibernate)。另外,spring带的mvc step-by-step是一个很好的入门教程。 需要说明的是,spring仅仅为我们提供了一种设计和实现框架的方式,因此,项目的成功与否,是与我们的构架设计紧密相关的,在有了好的设计思想以后,善用spring,会让我们的成功来的更容易。
󰈣󰈤
 
 
 
>>返回首页<<
 
 热帖排行
 
 
王朝网络微信公众号
微信扫码关注本站公众号wangchaonetcn
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
©2005- 王朝网络 版权所有