论坛首页 Java企业应用论坛

Spring 3.0 MVC 开发指南[强烈推荐1个小时掌握精华]

浏览 127162 次
该帖已经被评为精华帖
作者 正文
   发表时间:2012-02-01   最后修改:2012-02-01
哦,诚如楼上解惑,第四点没完全回答疑问,
看了下,@requestmapping貌似不支持继承,如果父类中标记有@requestmapping的方法如果被一个没有标记为requetmapping的子类方法override,于是,这父类的注解应该就没效了吧,我说的这个意思,这样在项目中可能产生一个问题,许多具有很多相似情形的url都必须在各自的action中各自定义方法,并@requestmappinged 注解才可以,而这些代码很多都是重复的,
   例如
   对象 A,B,C,D,E 都将有基本的curd等等常规操作,在s2里 设计定义父类 curd四个等等通用方法, ,然后各自的action只需要继承父类,父类的方法会被自动调用之,sring需要在各个子类中分别写curd方法才可以吧,这样代码冗余量岂不是很大,还要做很多额外的扩展才可以,s2直接就支持,s2还支持自动包名的namespace,也不需要注解,其实s2目前只需要很少的几个必要的注解,就可以实现url映射了,这点springmvc还做不到吧!!!
  其次,springmvc还没发现拦截器机制,而s2的拦截器机制目前来说还是独一无二的吧,有时候,面对复杂的问题,你会发现拦截器这个东西,会让你删繁就简的喜悦啊!!!
0 请登录后投票
   发表时间:2012-02-01  
整个浏览了一遍这个PPT,基本上没有发现错误,还是比较可靠的一个开发指南,初学者了解可以参考。推荐一下!!

kjj 写道
提以下疑问:
a.  struts2里 方法映射url非常方便,可以直接actionName!method,而不需要在方法上加什么注解,spring 每个方法都需要@注解才可以调用到方法,spring有struts2这方面方便吗!!!spring 就是对url template支持方便,除了这个还有哪里更好的!!!!!
b.  struts2的conversion 插件和config插件可以很好的查看url配置,spring要总揽action配置只有去翻代码了,springmvc的代码,满篇都是@requestmapping 注解,代码量多出不知道多少!!!!!!!!!!
c . 要命的是springmvc 需要送到request的attribute需要手动去set,这个你们觉得很方便吗,相对于struts2,自动把action的property送过去,少了很多map.put这种代码
d.  刚才看了一下,@requestmapping注解不支持继承,也就是说,每个方法如果需要被url调用,都必须注解
这就让action的方法难以重载使用,代码量减少了还是加大了!!!!.

PS: springmvc 真有你们吹得那么好吗!!!!


这些问题在我SpringMVC系列文章里面会有解答,敬请期待。

SpringMVC和Struts2目前来说各有千秋,也有各自超越对方的杀手锏。不过目前SpringMVC的发展态势比较凶猛,所以大家会更倾向一些。其实有关框架的话题,还是应该看得深一点,不要纠结于一些细枝末节。
0 请登录后投票
   发表时间:2012-02-01  
个人还是比较喜欢配置文件的方式
0 请登录后投票
   发表时间:2012-02-01  
刚好在学习spring mvc,在书店找过找不到好的资料啊,谢谢作者分享啊
0 请登录后投票
   发表时间:2012-02-01  
没有讲缓存啊?
0 请登录后投票
   发表时间:2012-02-01  
stamen 写道
javalinjx 写道
stamen 写道
    个人觉得Spring MVC和Struts比已经远远超出了,Struts从1到2完全不兼容,而Spring MVC至诞生以来基础框架就没有变更过,高版本完全兼容低版本,很好的体现了“开闭原则”的设计模式,也从另一个方面说明Spring MVC框架的天生优势。
     另外,Spring MVC 3.0的REST风格,URl的Annotation映射真的太好用了,对静态资源的处理也做得很好。如果要用Struts+Spring+Hibernate,我个人建议直接改为Spring MVC+Spring+Hibernate,这样既可以少学一个框架,另一方面Spring MVC不但比Struts简单,而且和Spring的天然整合的。



这个,本人也深有同感,spring的思想,实践方面都有比较好的体现。。

   不但现在很少用Struts了,而且也渐渐少用Hibernate了,Hibernate对于复杂的应用不方便控制,驾驭难度太大,我现在的网站架构已经改成:
    Spring MVC+Spring+MyBatis/Spring JDBC,自己做了一个分库框架(原来用amoeba,但还是满足不了,且问题多),使用memcached做缓存,使用自己实现的用户会话控制(可进行分布式会话),单点登录,使用Freemarker做网站静态化,使用solr做全文索引,使用类淘宝的服务总线结构(强烈不建议用笨重的WebService),使用testng+uitilies+mockito做测试框架。

象这种其实也可以出一本书洛,市面上应该没这么全的。
0 请登录后投票
   发表时间:2012-02-01   最后修改:2012-02-01
好奇怪一个帖子全是说MVC牛逼的。。。

  刚使用Spring MVC做完项目,我也觉得MVC在对VIEW层的代码冗余方面做的不太好,另外还有一些S2下很方便的URL处理链在MVC下也不方便。。

至于MVC的拦截器倒是可以通过方法参数注入进来,只是没有S2的类属性那么看着简洁.

不知道@kjj是不是指的这个拦截器。

总体来说还是觉得MVC上手快一些。
0 请登录后投票
   发表时间:2012-02-02  
文档做得很用心,值得赞赏!
0 请登录后投票
   发表时间:2012-02-02   最后修改:2012-02-02
kjj 写道
哦,诚如楼上解惑,第四点没完全回答疑问,
看了下,@requestmapping貌似不支持继承,如果父类中标记有@requestmapping的方法如果被一个没有标记为requetmapping的子类方法override,于是,这父类的注解应该就没效了吧,我说的这个意思,这样在项目中可能产生一个问题,许多具有很多相似情形的url都必须在各自的action中各自定义方法,并@requestmappinged 注解才可以,而这些代码很多都是重复的,
   例如
   对象 A,B,C,D,E 都将有基本的curd等等常规操作,在s2里 设计定义父类 curd四个等等通用方法, ,然后各自的action只需要继承父类,父类的方法会被自动调用之,sring需要在各个子类中分别写curd方法才可以吧,这样代码冗余量岂不是很大,还要做很多额外的扩展才可以,s2直接就支持,s2还支持自动包名的namespace,也不需要注解,其实s2目前只需要很少的几个必要的注解,就可以实现url映射了,这点springmvc还做不到吧!!!
  其次,springmvc还没发现拦截器机制,而s2的拦截器机制目前来说还是独一无二的吧,有时候,面对复杂的问题,你会发现拦截器这个东西,会让你删繁就简的喜悦啊!!!

  1.呵呵,Spring MVC一开始就有拦截器了,3.0对配置进行了简化,提供了专门的schema,如下所示:
	<mvc:interceptors>
	     <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
	</mvc:interceptors>

2.父类的@RequestMapping方法可以被子类继承,默认情况下,Spring MVC方法的所对应的URL是:
  
引用
类级别@RequestMapping+方法级别所对应的@RequestMapping

   如果有一个父类:
public class MyBase {
    @RequestMapping("/create")
    public String create(){
        return "create";
    }
    
    @RequestMapping("/update")
    public String update(){
        return "update";
    }
}

  它被ChildController1和ChildController2继承:
@RequestMapping("/child1")
public class ChildController1 extends MyBase {
    
}

@RequestMapping("/child2")
public class ChildController1 extends MyBase {
    
}

则可以通过:
/child1/create 映射ChildController1的create()方法,
/child2/create 则映射ChildController2的create()方法。

PS:不够这些确实是技术细节,不必过于在意,个人觉得一个框架是否优秀不在于这些细节,而在于扩展性,灵性活,兼容性,集成性等方面,这些方面个人认为Spring MVC是超越Struts的。
0 请登录后投票
   发表时间:2012-02-02  
好教程,一直用的是struts,现在正准备研究哈springmvc
0 请登录后投票
论坛首页 Java企业应用版

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