论坛首页 Java企业应用论坛

spring3mvc与struts2比较

浏览 162475 次
该帖已经被评为良好帖
作者 正文
   发表时间:2010-06-25   最后修改:2010-06-25
貌似用Map级别更容易犯"容易犯的错误",put/get一不小心"最终一定会变成泛滥的错误",我们的团队除非万不得已,不要用Map这东西来存放业务逻辑数据,因为吃过好多亏啊。

引用
框架就是固化了的最佳实践


似乎哪个框架都在出2,3版本,远未固化。

貌似只有死了的东西才会固化。

最后,存属路过。
0 请登录后投票
   发表时间:2010-06-25   最后修改:2010-06-25
楼上请注意看上下文,我没说要用全局map
我没说框架本身是固化的,但它是对知识和经验的固化
就像软件是对人类思维的固化,软件本身不是固化的
0 请登录后投票
   发表时间:2010-06-26   最后修改:2010-06-26
引用
对于楼上两位的论调,我感觉非常遗憾。Java发展到现在,还有人可以堂而皇之的告诉我,显示调用map.put,是业务逻辑的一部分,为了分清楚所谓的输入输出,宁可放弃OO。


现在明白你为什么那么急冻,那么贬低springmvc了
如果仅仅因为springmvc不够OO而武断的主观的说它不好是不可取的

springmvc采取的是动态绑定参数的方式,而struts2是静态的方式
这也就决定了springmvc无法做到OO,但正是这种动态提高了开发效率,受很多开发者的欢迎


struts2确实很OO, 但也带来了前面讨论的那些问题
我个人认为web层框架的趋势是springmvc或者说动态绑定参数型框架



downpour 写道
楼上的这位同学,讨论中止,我认为你的水平还不足以和我讨论。希望你首先明白什么才是OO,什么才是优雅。我不乐意和一个毫无是非观念的人讨论下去,这毫无意义。


淡定
0 请登录后投票
   发表时间:2010-06-26  
downpour 写道
楼上的这位同学,讨论中止,我认为你的水平还不足以和我讨论。希望你首先明白什么才是OO,什么才是优雅。我不乐意和一个毫无是非观念的人讨论下去,这毫无意义。

我不否认,struts2看起来更加OO, 并且可以从中获得很多好处,比如拦截器中直接操作实例变量,实例变量上可以直接添加scope可读性更好。但是用是不是OO来决定一个框架是否优秀还是显得片面。
Spring MVC对于请求-相应模式更直接点,参数输入,处理,ModelMap输出,每个方法之间不互相干扰。这样很多方法可以放一起,比如一个CustomerController就可以解决所有customer相关请求,这里的customerController不是一个业务上的概念,可以看成是Customer的EndPoint,用于提供基于url请求的服务。
反之,用struts2改写这个类就会出现过多实例变量,所以,就必须合理的设计struts2的action。所以,个人认为struts2的使用上更为复杂些。我并不是想搬到Struts2, 但是我想通过这些讨论,找出Struts2,Spring MVC2者设计理念的差别以及最佳实践和适用范围。讨论的过程也是学习的过程,当然你没有耐心赐教,我也没办法。
0 请登录后投票
   发表时间:2010-06-27   最后修改:2010-06-27
  **自己不是很了解WEB框架,但看大家讨论来讨论去,是不是可以简单归结为“用局部变量,还是成员变量?以及方法和类的引申好处” 或者归结为“过程式,还是面向OO式?”

  **关于效率,Struts2如果对Action对象做了对象池的话,我感觉也不会慢到哪里去吧,和SpringMVC的“方法级拦截”应该相当吧。

   **不知道S2有没有做action的对象池呢? 如果没有,又出于什么考虑呢?哪位知道的话能否讲解下?

个人的一些理解,欢迎指正:)
  
0 请登录后投票
   发表时间:2010-06-27   最后修改:2010-06-29
C_J 写道
  **自己不是很了解WEB框架,但看大家讨论来讨论去,是不是可以简单归结为“用局部变量,还是成员变量?以及方法和类的引申好处” 或者归结为“过程式,还是面向OO式?”

  **关于效率,Struts2如果对Action对象做了对象池的话,我感觉也不会慢到哪里去吧,和SpringMVC的“方法级拦截”应该相当吧。

   **不知道S2有没有做action的对象池呢? 如果没有,又出于什么考虑呢?哪位知道的话能否讲解下?

个人的一些理解,欢迎指正:)
  

楼上,从很早以前开始,除非是连接池这种每次创建代价很大的少数pool,对象池模式早就不再需要了。
0 请登录后投票
   发表时间:2010-06-29  
哦,S2的确可以更OO。但是,JSP是太不OO了,不如JSF的好,极端点的说法,JSF比S2好。


OO真的得是程序开发的万金油么?或者说,在WEB开发上他就很合适?处处用此来衡量呢?
我不觉得用OO来开发页面是好主意,我也不觉得OO来描述流程是好主意。我觉得OO的核心优势就是消息和关系。应该用在合适的地方。

action?不是。
1 请登录后投票
   发表时间:2010-06-29  
有没有人对Struts2改造一下,把Action的实例变量挪到方法参数中去,
按照请求参数名称匹配方法参数的方式自动调用相关的方法。

当然,前提假定编译后的类文件是保存了局部变量表的。
0 请登录后投票
   发表时间:2010-06-30  
sswh 写道
有没有人对Struts2改造一下,把Action的实例变量挪到方法参数中去,
按照请求参数名称匹配方法参数的方式自动调用相关的方法。

当然,前提假定编译后的类文件是保存了局部变量表的。

不需要改造,至少你这个需求有很多种方法来实现。
0 请登录后投票
   发表时间:2010-06-30  
downpour 写道
楼上的这位同学,讨论中止,我认为你的水平还不足以和我讨论。希望你首先明白什么才是OO,什么才是优雅。我不乐意和一个毫无是非观念的人讨论下去,这毫无意义。

强悍之及,看来一直认为oo是手段,不是目的围观群众是真的不明真相了
0 请登录后投票
论坛首页 Java企业应用版

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