这个问题是没有绝对的优势和缺点的。 程序员
有人喜欢说:我就爱用SSH2,由于都是最新的,我也喜欢用全annotation的方式来编程,由于这样作比较潮流,比较优雅。可是。。。。。。这些都不是真正的justification。 web
对于在框架选型时,不只仅是开发者本身喜欢不喜欢的问题,就和有人说:开发者们永远喜欢推倒重作,永远喜欢开发新项目而对于修修改改维护类项目感冒是一个道理。 spring
试想,大部分的金融保险客户,他们的系统都是有必定的年头了,并且像这样的企业中的一个IT项目是不可能跟着潮流常常去变化的,由于这些企业中的IT项目或者咱们称做IT资产涉及到数据、机密性、稳定性,一旦这个项目自上线之日起它就一直在稳定的运行了,除非是重大变故通常是不会轻易去改它的架构或者是核心的,通常都是围绕着己有项目来进行扩展和维护,所以这些企业中的J2EEAPP Server或者是JDK版本都不必定是最新的。 sql
好比说有些银行到如今还一直在用was6.1,或者是weblogic9.x,更有甚者还在用jdk1.4,若是这时你在接手项目时不去了解企业的现情况,一拍脑壳说:咱们用SSH2吧!结果你的项目作完后连上线都没法上线,到那时就不只仅是再让你重构的问题了,呵呵,对吧. 数据库
你不要试图去和客户解释说:唉呀你怎么还在用WAS5.1,你怎么还在用Tomcat5.5啊,我给你搞个tomcat6.x也行,把你的JDK装成1.6吧,呵呵,千万不要这么作。 编程
客户能够告诉你,它的服务器是小型机,上百万元购买来的,购买小型机时赠送了WAS5.1所以在上面有许多的应用且已经使用了5年之久了,如今你为了说你的框架是STRUTS2而逼着客户升级JDK和WAS版本,若是万一有问题了,出错了,致使了客户的实时交易延误而引发的经济损失,你能支付得起吗?若是你说由于咱们的环境而不能使用大家的框架,那么对不起,咱们公司不会采用你方的架构。呵呵!! 设计模式
框架的目的在于最大程度上减化一些底层的,重复性的劳动,把对数据库的访问,对resource等的访问从程序员的实际工做中分离出来,使程序员有更多的时间去关注“业务逻辑”——摘自2001版的《EJB2从入门到精通》。因此在实际工做中不可以为了用框架而用框架。 tomcat
比如,我用Annotation写DAO是很方便,很优雅,可是你有没有想过,当你的SQL若是是常常须要变,或者是须要经过外部动态传入的时候甚至容许客户本身构建SQL再传给咱们的DAO的场景下,那么对于咱们来讲只须要改改SQL逻辑从新启动一下服务器就能够实现的而由于你用了所有基于Annotation的框架,我甚至须要去动咱们的代码,要知道代码无论你动了多少哪怕你只是加了一个注释也是须要按照流程来从新测试、从新打包的。由于没有人敢保证你的改动不引发regressionbug。因此这时把sql或者一些配置写成xml或者是properties的外部配置形式要比你用annotation来得更灵活,这就是我在第十八天的spring+jdbcTemplate时为何喜欢把SQL写在XML里再经过spring注入到DAO层的缘由。由于你的SQL不是一次写成的,就算是一次写成,你的工程在未来也会面临SQL调优这么一个过程,到时你每改动一次SQL,就要动一次代码层,而你的改动可能只是把in变成了=或者是把innerjoin改为hashjoin,那么此时个人SQL若是是配置在外部配置文件中的话我改起来是否是更方便?尤为是一些涉及到大数据量出报表的SQL是常常面临调优的。 服务器
Struts2是基于filter框架的,你可使用它的filter,你甚至能够不用去使用spring而直接使用struts2或者使用spring的MVC而抛弃struts2,都是没问题的,没有什么所谓“不正统/正统”框架之说。比如我有一个servlet叫LoginFilter,这个filter诞生在8年前,经历了好几个项目了已是很是稳定了,所以当我碰到了struts2的框架时我不是说由于struts2的技术新我就必须所有用struts2来重作个人feature,稳定性重用性在哪里?我既然手上有一个这么稳定的历经了好几年的一些个组件,虽然它们历史久远了些但是我也是照用不误,缘由就在于它稳定实用。 架构
说了这些,主要的目的仍是要告诉你们,框架和设计模式是同样的,它只是在最大程度上解放你的生产力,减小你的重复劳动,避免了不要去重复造轮子。不要为了框架而框架,不要被框架套死。比如刚练武时,一招一式都要照着书本和师傅的样子去学,可是真正的武功高手是什么样的呢?“无招胜有招”,对不对?活用活用,要把框架和模式为你所用而不是作框架的奴隶。
这也是我为何强调框架而不只仅是强调SSX体系的缘由,其实在个人SSX框架中还常常能够看到一些古老的jstl,servlet的存在,个人目的就在于充分利用各个技术的优势,把各个技术各个框架的优势集中起来使用这样才能搭出一本葵花宝典来。