论坛首页 Java企业应用论坛

Struts+Spring+Hibernate 分析

浏览 17045 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-06-30  
由于现在给美国老作项目,他们那边要求一定要用"Struts+Spring+Hibernate"来实现,我原来用Struts作,现在刚开始研究Spring和Hibernate


我的理解是这样的:
Struts在里面起到了MVC中的V作用(比如说jsp页面里的表单提交以及提交给的actionform,和数据库取出数据在Jsp页面的显示等;
Spring 对业务逻辑类beans进行配置,并由spring管理与表现层的控制器(那Struts原来起这部分作用,现在由Spring来代替吗??)及更下层的DAO对象的关系(怎样的下层DAO对象关系??);
Hibernate 来处理DAO的吗?[b][/b]
   发表时间:2004-07-01  
我的答案:

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,会让我们的成功来的更容易。
0 请登录后投票
   发表时间:2004-08-03  
自问自答


不过我还是没有明白spring在其中的具体作用
0 请登录后投票
   发表时间:2004-08-11  
有没有一个比较好 SIMPLE的例子
0 请登录后投票
   发表时间:2004-08-14  
在google上查一下就好。
0 请登录后投票
   发表时间:2004-08-18  
本人正在用Struts+Spring+Hibernate开发项目:

Struts:用来作VC部分,即控制和显示作用;
Spring:用来作数据库操作的事务处理,在配置文件里配置好就OK了;
Hibernate:用来作DAO处理,在此用了Spring的getHibernateTemplate()方法来操作hsql进行数据增删改等操作。

感觉和原来的开发方式有很大差别,从中领悟了三者的配合好处!OpenSource用起来就是比较激动!
0 请登录后投票
   发表时间:2005-12-12  
好像和AppFuse差不多啊.
0 请登录后投票
   发表时间:2005-12-12  
现在在用Struts+Spring+Hibernate。
用struts的MV主要是因为有struts的技术积累。在目前的使用中用struts的MV已经足够了,感觉没必要刻意的引入spring。
很多时候好的东西未必合适你,合适的最重要。
当然,我没有过多的去了解spring的MV,不是很好说。
0 请登录后投票
   发表时间:2005-12-14  
现在开始改用spring+hibernate+ajax,虽然要花大量的工夫写javascript,
但是效果确实棒了很多,而且现在感觉strtus确实落后了,听说webwork已经
支持ajax了,准备找时间44
0 请登录后投票
   发表时间:2005-12-16  
我最近一年一直搞spring+struts+hibernate下的设计开发,可以来我的blog里看看
http://blog.imbest.com.cn/
左边分类列表里有专门一个spring+struts+hibernate的分类,帖着我做过的一些项目和遇到过的问题,有空一起来讨论讨论
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics