本人初出毛庐,之前在学校的时候一直是用的 SSH 框架。请大家不啬赐教。
现在用过 SpringMVC 才知道 struts2 的臃肿。也明白为什么大家都说 SSH 很“重”。之前一直以为所谓的“重”是指的性能上的重。现在感觉更多的似乎是指使用的体验:
首先是配置上, Struts2 动不动都是一坨 XML 。不光是配置 action ,连做数据验证的时候都需要配置 XML 。不配置 XML 也可以,那就得在类里面单独写数据验证的方法。
其次就是在封装上。 Struts2 完全封装了 servlet ,如果不显示的去实现 RequestAware 这一套接口,使用的过程中感觉完全看不到 servlet 的影子,还自己搞了一个值栈。
还有就是 struts2 的拦截器机制。拦截器也是弄了一大坨,也搞成了拦截器栈。
action 类里面,如果不用 ModelDriven ,将会是一大坨 Getter 和 Setter 方法。
还听说 Struts 的官方处理漏洞,不是紧急修复,而是是直接把公布漏洞利用方法。。。
我感觉 Struts 的初衷似乎是想一个框架,通杀所有开发需求。尤其是 struts 的表单标签,我觉得一点都不好用。视图层完全交给前端技术不是更好么?
相比起 springMVC , struts2 真的很难用。
这让我想起以前我问老师:像同轴电缆这种网络传输介质几乎已经没人用了。并且跟双绞线和光纤相比,根本不在一个档次,为什么还要花时间去讲它?老师却说:存在即为合理。
我觉得看待一项技术,不应该以现在的目光去看待它。而是应该结合当时的时代背景。
虽然现在我觉得 SpringMVC 的设计理念很先进,但我觉得未来肯定会有比 SpringMVC 更优秀的 Controller 框架,那个时候的人们也许会和我一样问: SpringMVC 那么难用,为什么当时还有那么多人用?
在没有 Spring 和 Struts2 的时候,那个时候的开发是怎样的呢? Struts2 诞生后,又为开发解决了哪些问题,带来了哪些好处呢? Spring 诞生后,又是哪些原因导致 struts2 没落了呢?
欢迎大家来讨论。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.