Spring MVC和Struts你选哪个?

被很多人问过,为什么你们选Spring MVC不用Struts,别人都用Struts的呀?

其实我从Struts1就开始用了,当时可选的框架基本没有,只有这么一个比较好用的所以理所应当的是用Struts了,但后来Struts2之后就有了很多类似的框架,比如JSF、Webwork等等。

这些框架使用起来怎么说,都各有所长,但也都各有不便的地方,特别是有的因为框架本身的原因要浪费很多工作量在上面。

后来Spring MVC出现了,我们也进行了尝试,发现这个框架真的是太好用了。除了天生与Spring及其框架群无缝衔接之外,用起来真的是非常方便,性能也很好,入门也容易,简直令人为之振奋!

相对于经常爆出漏洞的Struts而言,Spring MVC至今很少见有什么漏洞,而且还有这么一些优点:

1、Spring MVC是基于方法的,是单例的;Struts是基于类的,每次请求都会创建一个实例,显然Spring MVC性能上要好很多;也正是因为这个原因,Spring MVC的参数传递是在方法级别上的,不会出现因为成员变量乱用而导致一些低级的又不容易测试出来的bug。

2、Spring MVC可以实现零配置,项目中只需要配置一个基础的配置文件,项目成员在开发功能的时候使用注解的方式就可以完成功能的开发,这样就不会造成大家都要修改配置文件而造成冲突的情况,也提高了开发效率;

3、相对于Struts而言Spring MVC入门容易,只要记住那么几个类型的值传递方式,开发的时候就可以很轻松地实现参数传递。具体的参数传递方式可以看我之前写的另外一篇文章:Spring MVC前后台参数传递方法总结

4、Spring MVC可以很容易地做出Restful风格的项目,不仅有利于做SEO,而且要开发接口给APP调用也非常方便。

5、以前流行用XML或WebService作为数据交换的方式,现在比较流行使用JSON,Spring MVC具备帮你把返回值转为JSON的功能,自己不用再多出这个工作量去做一个转化了。

我个人始终认为,作为一个好的框架必须具备这几点:

1、入门容易,让一个从未接触过这个框架的人能在非常短的时间内上手;

2、开发高效,这一点是关系到项目研发成本的,所以是重点,不能让人做个功能要写很多代码,最后还因为框架做得不好而容易出现各种bug,再反过头来花时间测试和修复,这简直是噩梦;

3、易于扩展,不管是框架本身因为项目功能的需求而需要扩展,还是项目因为要增加功能而做功能性的扩展,易于扩展几乎时时都是必须具备的,不然的话又要多出很多成本来,对于软件行业来说人力成本几乎就是所有成本里最大的一个;

4、安全性高,要从框架底层就解决这个问题,一方面不要出现漏洞,另外一方面也要能够容易地跟其他安全框架整合在一起以防不法被分子入侵而束手无策。

速度与激情8的正确打开方式,你get这个新技能了吗?

举报
评论 0