`

Annotation风格的Spring MVC太好用了

    博客分类:
  • java
阅读更多
最近使用的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。

分享到:
评论
7 楼 Garriot 2007-12-12  
elvea 写道
个人感觉比Struts2简洁多了。              
之前发过Spring MVC Annotation的贴,    
http://www.iteye.com/post/412511
估计对Spring MVC有兴趣的人太少了。


Struts2一样可以annotation的
6 楼 Allen 2007-12-12  
这个……很难啊!

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

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


面对100个不同的想法:

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

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

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

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

能满足其中的100个,我们已经无语了;
5 楼 Qieqie 2007-12-12  
我无知,我不清楚知名的Java Web框架作者们到底是为了什么,
难道是做一个“永远正确,够灵活”的万灵丹框架吗?

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

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

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


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

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

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

简单化,不仅仅是语法糖,或者说语法糖只是很小一部分。
现在是开发套路上,应用思维上,就不要自我束缚了:小心把自己绑死。
4 楼 andyao 2007-12-12  
elvea 写道
个人感觉比Struts2简洁多了。                之前发过Spring MVC Annotation的贴,      http://www.iteye.com/post/412511 估计对Spring MVC有兴趣的人太少了。
<br/>
<br/>
呵呵,都喜欢用热门的,struts2,webwork2之类的。<br/>
其实选web框架的时候,要结合项目需求来选。webwork虽然功能强大,如果项目中用不到,只会增加项目实施的复杂性。
3 楼 andyao 2007-12-12  
Qieqie 写道
这是虾米碗糕?  你看看action-servlet.xml还是这么罗嗦。。。 @RequestMaping("/foo.htm") 也是多余 看不出Annotation在这起什么新鲜的作用。  如果还是这样搞,我还是很烦
<br/>
<br/>
<div class='code_title'>java 代码</div>
<div class='dp-highlighter'>
<div class='bar'> </div>
<ol class='dp-j' start='1'>
    <li class='alt'><span><span>&lt;context:component-scan base-</span><span class='keyword'>package</span><span>=</span><span class='string'>"org.springframework.samples.petclinic.web"</span><span> /&gt;  </span></span></li>
</ol>
</div>
<br/>
可以使用component-scan,这样action-servlet。xml基本上没有什么内容。<br/>
和ROR之类的COC相比确实还是罗嗦了一点,但是就java web框架来说,已经非常简单了。
2 楼 elvea 2007-12-11  
个人感觉比Struts2简洁多了。              
之前发过Spring MVC Annotation的贴,    
http://www.iteye.com/post/412511
估计对Spring MVC有兴趣的人太少了。
1 楼 Qieqie 2007-12-11  
这是虾米碗糕?

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

如果还是这样搞,我还是很烦

相关推荐

    Annotation Based Spring MVC Basics

    在本文中,我们将深入探讨基于注解的Spring MVC基础知识,这是一种流行且强大的Java Web开发框架。首先,我们假设读者对基本的Web应用程序结构和配置文件有一定的了解,以及对Servlets有基本的认识。接下来,我们将...

    Spring MVC Annotation验证的方法

    Spring MVC Annotation验证方法 Spring MVC 框架提供了多种验证方法,其中一种常用的方式是使用Annotation验证。本文将详细介绍 Spring MVC Annotation验证的方法,包括使用 Spring MVC 自带的 Annotation 验证和...

    Spring MVC 教程快速入门 深入分析

    Spring MVC是一种基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,使用了IoC容器,支持RESTful风格的应用程序开发。Spring MVC通过分离模型(Model)、视图(View)和控制器(Controller)来简化Web开发...

    Spring MVC入门教程

    个人认为相当适合入门和知识巩固!! 一、前言 二、spring mvc 核心类与接口 ...十九、 &lt;mvc:annotation-driven /&gt; 到底做了什么工作 二十、 本文中springMVC.xml配置文件是核心,这里给一个下载地址

    Spring MVC IDEA版本DEMO

    **Spring MVC IDEA版本DEMO详解** 在现代Java Web开发中,Spring MVC框架是不可或缺的一部分,它为构建可扩展、模块化的Web应用程序提供了强大的支持。IntelliJ IDEA作为一款高效的Java集成开发环境,使得开发...

    Spring MVC学习指南

    ### Spring MVC 学习指南详解 #### 一、Spring MVC 概述 Spring MVC 是 Spring 框架的一部分,主要用于构建基于 Model-View-Controller (MVC) 设计模式的 Web 应用程序。它提供了丰富的功能来简化 Web 开发过程,...

    Spring MVC 教程 快速入门 深入分析

    Spring MVC 教程 快速入门 深入分析 目录 一、前言 二、spring mvc 核心类与接口 三、spring mvc 核心流程图 四、spring mvc DispatcherServlet说明 ...十九、 &lt;mvc:annotation-driven /&gt; 到底做了什么工作

    spring mvc的简单单元测试

    import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.test.web.servlet.MockMvc; import ...

    spring mvc

    `&lt;mvc:annotation-driven/&gt;` 配置主要用于启用 Spring MVC 的注解驱动功能。这包括但不限于: - **自动绑定**:支持自动将 HTTP 请求参数绑定到控制器方法的参数上。 - **数据转换**:支持自动的数据类型转换。 - **...

    spring mvc项目创建

    Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。在本项目创建过程中,我们将深入探讨如何配置一个基本的 Spring ...

    spring mvc 简单demo

    Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建RESTful应用程序提供了强大的支持。这个简单的Demo将向我们展示如何使用Spring MVC创建一个基本的Web应用。在这个过程中,我们将涉及控制器、视图解析器、...

    Spring-MVC-3.0.rar_Java spring mvc_spring mvc_spring ppt

    **Spring MVC 3.0详解** Spring MVC是Spring框架的一部分,专为构建Web应用程序而设计。这个名为"Spring MVC 3.0.rar"的压缩包包含了一份关于Spring MVC 3.0版本的实战指南PPT,是Java开发者深入理解Spring MVC架构...

    IDEA 搭建Spring MVC环境示例二

    在本示例中,我们将详细探讨如何使用IntelliJ IDEA(IDEA)和Maven来搭建Spring MVC项目环境。Spring MVC是Spring框架的一个模块,它为构建Web应用程序提供了模型-视图-控制器(MVC)架构。Maven则是一个强大的项目...

    Spring MVC REST Demo

    Spring MVC 是一个强大的Java框架,用于构建Web应用程序,而REST(Representational State Transfer)是一种软件架构风格,常用于创建Web服务。"Spring MVC REST Demo"是一个示例项目,旨在展示如何在Spring MVC框架...

    Spring MVC异步模式

    import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Controller; @Controller public class TestController { @Async public void asyncTask() { // 耗时操作 ...

    Spring MVC 基础实例,能明白SpringMVC是怎么回事

    Spring MVC 是一个强大的Java Web开发框架,用于构建可维护、高性能和灵活的Web应用程序。它作为Spring框架的一部分,提供了一种模型-视图-控制器(MVC)架构,简化了处理HTTP请求和响应的复杂性。在这个基础实例中...

    Spring MVCSpring MVC基础.ppt

    Spring MVC 是一个轻量级的、基于Java的Web应用程序开发框架,它是Spring框架的一部分,主要用于构建Web应用的模型-视图-控制器(MVC)架构。Spring MVC的设计目标是简化开发,提高可测试性,并促进良好的编程实践。...

    Spring MVC整合Mybatis

    - **Spring MVC配置**:配置`&lt;mvc:annotation-driven&gt;`启用注解驱动,配置视图解析器如`InternalResourceViewResolver`。 **5. 实例化Mapper** 在Service层,可以通过@Autowired注解自动注入Mapper接口,例如: ```...

    Spring MVC框架实例

    - **Controller**: 处理业务逻辑,通常是一个实现了 `org.springframework.web.servlet.mvc.Controller` 或者 `org.springframework.web.bind.annotation.ControllerAdvice` 接口的类。 - **Model**: 表示应用程序的...

    最新maven搭建的Spring mvc的demo

    Spring MVC简化了Java Web开发,通过依赖注入(DI)和面向切面编程(AOP)提供强大的功能,支持RESTful风格的URL设计,使得API设计更加直观。 Maven则是一个项目管理和综合工具,主要用于Java项目构建、依赖管理和...

Global site tag (gtag.js) - Google Analytics