论坛首页 Java企业应用论坛

SpringMVC深度探险(一) —— SpringMVC前传

浏览 43076 次
该帖已经被评为精华帖
作者 正文
   发表时间:2012-01-09  
这些各种MVC框架我都用过了。
LZ没有提到的一个MVC框架:JSF
未来,我认为Seam,EJB3+JSF,会有大的发展。
0 请登录后投票
   发表时间:2012-01-09  
这个问题我在之后的系列文章中还会有讨论,我在这里可以简单解释一下我的一些看法:

寻找出路的苍蝇 写道
LZ有没有在大一点的项目中完全使用SpringMVC的注解来完成配置?比如一个项目中至少存在300个以上的请求,10人以上的开发人员。。。
我始终觉得,在项目规模比较庞大、开发人员比较多的情况下,使用注解这种精巧、灵活的配置方式,沟通和维护成本太大,新人很难界入。。。我更喜欢使用XML这种集中式的配置方式。


Annotation将整个请求映射与Controller整合在了一起,所以对于一个特定的URL到底映射到哪一个Controller类的哪一个Method的确不是一件容易的事情。尤其是当rest风格的URL引入进来之后,URL的匹配查找甚至不是全文匹配查找,这就为沟通和维护带来了极大的麻烦。

这也是我过去对于SpringMVC推崇Annotation进行请求映射最大的质疑:在项目大了以后,如何维护?如何能够让项目的每一个开发人员走能够遵守编程规范?这太难了!

不过在后来,我的思考角度有所变化。整个系统的URL规划难道不应该是整个系统的设计之一嘛?如果一个项目很大,导致你连URL和Controller的映射关系都没有搞清楚,那么整个项目的规划一定是失败的!所以我认为Annotation的引入所导致的关注点分离的问题,首先应该通过人为的项目管理加以避免。当然,人为项目管理的手段就很多了,比如说我们可以通过一些命名约定的方式,规定某些Controller名称与URL的对应关系等等。

总体来说,Annotation的引入对于一个管理能力较好的团队来说是一种生产力的解放,反之则是一种噩梦。

寻找出路的苍蝇 写道

另外,注解方式的性能表现我始终心存疑虑。


Annotation不存在性能问题。


  • 大小: 6.4 KB
  • 大小: 4.9 KB
1 请登录后投票
   发表时间:2012-01-09  
leon709 写道
这些各种MVC框架我都用过了。
LZ没有提到的一个MVC框架:JSF
未来,我认为Seam,EJB3+JSF,会有大的发展。


JSF和Tapestry都属于组件模型(事件模型)的Web开发框架,所以并不在本系列的讨论范围之内。

我个人对组件模型(事件模型)的Web开发框架持保留态度,所以对其发展趋势也就不做评价了。
0 请登录后投票
   发表时间:2012-01-09  
分析得很不错
0 请登录后投票
   发表时间:2012-01-09  
这个文章条例很清晰阿,作为直接从Struts1.x升级为spring MVC的,也说一下spring MVC的好话吧。如果LZ以后能把spring MVC的代码和详细原理写出来那更好了。
Spring MVC的Annotation注解会在系统启动的时候读入缓存中,预先会把方法和path的对应关系给装好,你把spring mvc的log级别调整为DEBUG,即可看到他的装载日志,这个跟性能应该关系不大的。
Spring MVC的杀手锏武器个人认为是在于其简单和灵活性,体现在annotation和REST风格上,从spring mvc 2.5加入annotation开始,这个简单性已经大大的提高了,可以在一个class中看到输入的参数和返回的页面,而且我只要建立页面和后台服务的一个简单的通道而已,就是controller一层来作为数据传递的一个中介,validation和ajax已经有Jquery等代劳。 可以采用强制性跟class的名字和方法名绑定的方式就能很好的分开各个URL,也可以采用默认约定方式来建立映射关系。使得一个URL本身就能带上一些业务含义在里面。对于管理上的混乱应该是不怕的,如果有绑定了重复的URL,系统立刻会报错的。struts3还没有读过,这次大幅提升版本号,估计是有大改动,也是要应付spring MVC所带来的冲击。
0 请登录后投票
   发表时间:2012-01-10  
终于认认真真完整看完一个帖子,真的不错
0 请登录后投票
   发表时间:2012-01-10  
REST 本身就非常注重 URL 的设计(这是REST的根基),如果引入 REST 风格的机制,而不将这个根基引入,这岂不是空中楼阁?。。。

事实上,所有精巧、灵活的东西,就越是建立在某种规范或设计基础之上。。。所以,如果使用注解方式来 Map URL,而又不事先对 URL 进行设计规划,任由开发人员发挥。。沟通和维护成本自然会大于 XML 配置方式。。
0 请登录后投票
   发表时间:2012-01-10  
SPRING MVC 在编码速度和执行速度,还有程序员的理解上,都已经赶超struts2了。只是很多公司老系统用的都是strusts,所以很难改变,养成的习惯确实不好变啊。
0 请登录后投票
   发表时间:2012-01-10  
寻找出路的苍蝇 写道
LZ有没有在大一点的项目中完全使用SpringMVC的注解来完成配置?比如一个项目中至少存在300个以上的请求,10人以上的开发人员。。。
我始终觉得,在项目规模比较庞大、开发人员比较多的情况下,使用注解这种精巧、灵活的配置方式,沟通和维护成本太大,新人很难界入。。。我更喜欢使用XML这种集中式的配置方式。
另外,注解方式的性能表现我始终心存疑虑。



刚接触spring注解这种方式,也有这样的疑惑。若为struts,一个模块的所有功能、控制请求都可以在一个xml里面可以很清晰的看到,大型项目全部使用注解让人感觉太分散,新人很难快速融入。
0 请登录后投票
   发表时间:2012-01-11  
delphixp 写道
REST 本身就非常注重 URL 的设计(这是REST的根基),如果引入 REST 风格的机制,而不将这个根基引入,这岂不是空中楼阁?。。。

事实上,所有精巧、灵活的东西,就越是建立在某种规范或设计基础之上。。。所以,如果使用注解方式来 Map URL,而又不事先对 URL 进行设计规划,任由开发人员发挥。。沟通和维护成本自然会大于 XML 配置方式。。

+1
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics