今天论坛上面看到一个如下一个提问,我也觉得这个很有意思:
struts、spring、hibernate/ibatis你会删除那个?为什么?
这是一道面试题,我当时犹豫了一下,说会删除struts。
面试官问为什么,我说去掉struts,可以用servlet来替你它,毕竟action层的作用使用servlet完全可以替代。
作用:接受客户端的请求,负责分发至相应的action,通过actionForm拿到相应数据,调用相应的service层,负责转向相应的页面。
回答完之后,又想到了,ibatis或者hibernate的作用使用jdbc不是也能替代吗?
作用:完成一个对象与数据库打交道的过程。也使得开发更具对象化,在某种情况下也提高了生产力,移值性会非常容易,sql语句和代码的分离,使得维护更加容易。
而spring随然说现在还没有一个可行的方案来替代他,但是如果完全不使用它,也不是没有可能。
作用:声明事务,依赖注入,解耦合,配置客户端访问应用程序的方式是单实例还是多实例。
如果是你,你会删除那个?为什么?
我的答案: 一切从实际出发,我看很多人想删除 STRUTS 我个人的看法是我不会删除,为什么,因为它比较重要,MVC模式是一个系统的整体框架,有人说可以使用servlet代替,但是是否知道STRUTS 本身也是一个servlet的扩展,使用STRUTS的很多特性,特别是STRUTS2.0的拦截器比较有用,还有你删除了struts那么你代码的更改量是比较大的,我相信没有任愿意这么做,我相信你也不会
至于Spring我是不会删除,因为这框架的扩张性比较强,相信你的很多代码都是基于接口进行编写,想象你如果删除了Spring 你要做的事情还是相当之多的。
说了这么多我的答案就是删除 hibernate/ibatis 不是说它不好,是因为它的功能比较单一,就是访问数据库,如果数据库的访问封装的比较好,那么你只要需要改动小部分的代码就可以搞定。
以上只是个人评论,如果不妥 请批评指正。