spring MVC

刚来新公司,一切都是新的。在J2EE方面,以前一直是struts+spring+hibernate的模式一条道走到黑。也不可否认,ssh确实有比较好的开发便捷性,在oo方面,在ioc方面都可以说是面面俱到。之前也使用struts的restFull,和一个有十年工作经验的牛人做了一个web框架,虽然,最后我的一些方案(也并非都是我的想法,如领域+事件的模式)没有得到上级的认可(那些boss认为领域模型很多人还不熟悉,开发起头会非常困难),最终还是回来的经典的MVC框架。

在做公司内部web框架的时候,大家其实都心知肚明,这个也不过是在struts上的改良,然后通过使用java5加入的javax.anotation和spring的ioc的调配而成的(也可能大家不知道)。

在这个web框架中,存在两个非常大的缺陷:
   1. 速度慢
   2. 约束过多
速度慢,是因为这个框架式给予struts2的,虽然struts2确实很便捷,也很比较灵活,但是因为其大量的拦截器,大量的配置,大量的ioc,反而成为了当前所有的mvc框架中(调度框架)速度最慢的家伙了。比sping MVC, servlet直接调度慢了将近10倍。

约束多,则是因为这个框架是一个restFull框架,而restFull框架有个名言——约定大于配置。也就是说,你在使用这个框架的时候,作为框架的开发者,在一些变量的命名,方法的命名,类名的命名等都要遵循相对苛刻的要求。否则你的代码就出错,甚至不出错,但是不运行。比如一个很扯淡的问题,java在命名方式一般都是驼峰式的,如todayIsFriday。然后,我们在命名一个controller类的时候,比如叫TestSpringController。然而,亲!如果你这样命名了,在我们这个restFull框架中就会出现问题了。我后来查询源码才发现,如果你这样命名,那么框架是会去找一个叫Testspring的实例,亲,不是TestSpring。对于java这个大小写敏感的动物来说,这个必须无视的。

其实,我现在想来,当初为什么一定要出我们公司自己的web框架呢?难道就是为了标榜我们的公司的技术能力强(技术能力强就不会普遍不知道领域模型了)?或许这也是为了我们公司的技术产品上一次探索与努力。我想,这样的努力总是值得的。可是,毕竟目前已经有很有效的框架存在了,那么我们为什么不对目前已有的框架进行学习呢,闭门造车总是国产车啊!

我要说的就是spring MVC。

之前就有对spring MVC的速度进行测试过,惊人的发现spring MVC的调度速度基本上就比serlvet直接调度慢1ms左右,几乎持平。再试想spring的最大热点是什么——ioc。而这个又成就了spring MVC高扩展性,高配置性的特点。无疑,笔者这里要大声疾呼,struts2那渣渣弱爆了。而这也几乎成了我对spring MVC的第一印象(主要对spring的印象一直很好)。

spring MVC的构造
spring MVC_第1张图片
图 1-1
上图是个 牛人在自己的博客上写,我觉得虽然简陋,但是画丑理不丑,这个几乎很清楚明白地告诉我们了spring MVC是怎么工作的。

未完待续。。。。

你可能感兴趣的:(spring MVC)