论坛首页 Java企业应用论坛

Annotation风格的Spring MVC太好用了

浏览 26228 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-12-11  
最近使用的Spring2.5中的spring-mvc版本,使用上简单了很多,特别是在要使用MultiActionController的情况下.

spring2.5之前,写一个MultiActionController需要以下步骤:

1. 写一个Controller继承MultiActionController
java 代码
  1. public class FooBarController extends MultiActionController {
  2. public ModelAndView foo(HttpServletRequest request, HttpServletResponse response) {
  3. .....
  4. }
  5. public ModelAndView bar(HttpServletRequest request, HttpServletResponse response) {
  6. .....
  7. }
  8. }

2. 写相应的action-servlet.xml
xml 代码
 
  1. <bean id="fooBarController" class="....FooBarController">  
  2.     <bean class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">  
  3.         <property name="mappings">  
  4.             <value>  
  5.                 /foofoo.htm=foo  
  6.                 /barbar.htm=bar  
  7.             </value>  
  8.         </property>  
  9.     </bean>  
  10. </bean>  
  11.   
  12. <bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
  13.     <property name="mappings">  
  14.         <value>  
  15.             /foo.htm=fooBarController  
  16.             /bar.htm=fooBarController  
  17.             </value>  
  18.     </property>  
  19. </bean>  


Annotation风格的Spring MVC

1. Controller不需要集成任何类,任何POJO都可以通过annotation成为controller
java 代码
  1. @Controller
  2. public class FooBarController {
  3. //Spriing MVC 2.5定义支持不同的返回值和参数,详细参考文档
  4. @RequestMaping("/foo.htm")
  5. public void foo() {
  6. ...
  7. }
  8. @RequestMaping("/bar.htm")
  9. public void bar() {
  10. ....
  11. }
  12. }


2. 写相应的action-servlet.xml
xml 代码
  1. <bean id="fooBarController" class="....FooBarController" />

如果使用auto-scan功能的话,上面的bean声明都不用在
action-servlet.xml里面写,spring容器会自动扫描到该注释的controller

Summary

Annotaion明显的简化了配置操作。controller没有用继承,仅仅是一个POJO,更加有利于test。

   发表时间:2007-12-11  
这是虾米碗糕?

你看看action-servlet.xml还是这么罗嗦。。。
@RequestMaping("/foo.htm") 也是多余
看不出Annotation在这起什么新鲜的作用。

如果还是这样搞,我还是很烦
0 请登录后投票
   发表时间:2007-12-11  
个人感觉比Struts2简洁多了。              
之前发过Spring MVC Annotation的贴,    
http://www.iteye.com/post/412511
估计对Spring MVC有兴趣的人太少了。
0 请登录后投票
   发表时间:2007-12-12  
[quote="Qieqie"]这是虾米碗糕? 你看看action-servlet.xml还是这么罗嗦。。。 @RequestMaping("/foo.htm") 也是多余 看不出Annotation在这起什么新鲜的作用。 如果还是这样搞,我还是很烦[/quote]

java 代码
 
  1. <context:component-scan base-package="org.springframework.samples.petclinic.web" />  

可以使用component-scan,这样action-servlet。xml基本上没有什么内容。
和ROR之类的COC相比确实还是罗嗦了一点,但是就java web框架来说,已经非常简单了。
0 请登录后投票
   发表时间:2007-12-12  
[quote="elvea"]个人感觉比Struts2简洁多了。 之前发过Spring MVC Annotation的贴, http://www.iteye.com/post/412511 估计对Spring MVC有兴趣的人太少了。[/quote]

呵呵,都喜欢用热门的,struts2,webwork2之类的。
其实选web框架的时候,要结合项目需求来选。webwork虽然功能强大,如果项目中用不到,只会增加项目实施的复杂性。
0 请登录后投票
   发表时间:2007-12-12  
我无知,我不清楚知名的Java Web框架作者们到底是为了什么,
难道是做一个“永远正确,够灵活”的万灵丹框架吗?

你很好,很棒,没什么事做不了,都能做,但是用起来就不爽、就麻烦。
我就是一个普通web应用,简单的CRUD。开发一个这样的Web接口类的东西,还需要这么精疲力尽,真是折腾!

现在是期待变革的时候了。

web框架,ror能做到的默认就基于惯例的、几乎没有配置,难道java就不能做到?人家都不怕性能,Java你怕什么性能?人家都不怕扩展、灵活性有问题,Java还在那边我神自在继续装聋,套用老罗一句话,“那是在装B”。


真是国际人开的国际玩笑。

我不要那么多,只要一点点:请你简单给我看!

Java这种语言,追求性能的首选的不是他,如果在简单化上面它也逊色于别人,那还有什么可混的?

简单化,不仅仅是语法糖,或者说语法糖只是很小一部分。
现在是开发套路上,应用思维上,就不要自我束缚了:小心把自己绑死。
0 请登录后投票
   发表时间:2007-12-12  
这个……很难啊!

有的人希望端起碗来就能吃饭,吃完了立马就能走人;而有的人却想自己把 买菜->烧饭->烧菜->喝汤->吃饭->洗碗 整个流程走完。

世界就是这样,每种想法都可以有自己的生存空间。


面对100个不同的想法:

能满足其中的20个,我们已经称职了;

能满足其中的40个,我们已经优秀了;

能满足其中的60个,我们已经伟大了;

能满足其中的80个,我们已经疯狂了;

能满足其中的100个,我们已经无语了;
0 请登录后投票
   发表时间:2007-12-12  
elvea 写道
个人感觉比Struts2简洁多了。              
之前发过Spring MVC Annotation的贴,    
http://www.iteye.com/post/412511
估计对Spring MVC有兴趣的人太少了。


Struts2一样可以annotation的
0 请登录后投票
   发表时间:2007-12-12  
so,why?

Java从语言上没有假设应该使用什么路子到达目的

但是最好每一种都要有人去实践,并总结出成熟的 套路/API/框架 出来给人用。
大多数的Java Web应用是:web action + bo + dao
现在是某些“套路”垄断了其它的“套路”:不管3721,简单的、复杂的都按照这种套路在走路。
只是大家在这条路上有人走的是猫步、熊步、狗步 ,有的用拐杖,有的用金箍棒。。。
[漂亮的或丑陋的,但都在一条路上]

现在Java有没有成熟的、够有力量的其他路子可走:可能的话,我们完全应该在一个更近的路上走走猫步,去到达目的。
漂亮的舞姿,不一定只能在某一个舞台才可以引来惊叹。

现在有些好路子由其他语言在实践着,Java呢,等死啊?
有观点:Java不适合某些套路。抛开这个不说,追求更加简单化的方案却是合理的要求:
1、Java Web层的框架先简单下来[无/少配置,基于惯例]
2、....

我离题了,从Java Web框架讨论到Java应用开发上了。

0 请登录后投票
   发表时间:2007-12-12  
楼上的要不您发明一个框架我们用用好吗
0 请登录后投票
论坛首页 Java企业应用版

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