一个简单的基于注解的controller
来源:互联网 发布:江东是哪里 知乎 编辑:程序博客网 时间:2024/06/05 20:39
转载自:http://blog.csdn.net/liuyun1197628/article/details/22982749
低版本 的Spring MVC 创建一个 Controller 时,需要直接或间接地实现org.springframework.web.servlet.mvc.Controller 接口。一般情况下,我们是通过继承 SimpleFormController 或 MultiActionController 来定义自己的 Controller 的。
在定义 Controller 后,一个重要的事件是在 Spring MVC 的配置文件中通过 HandlerMapping 定义请求和控制器的映射关系,以便将两者关联起来。
来看一下基于注解的 Controller 是如何定义做到这一点的,下面是使用注解的 BbtForumController:
package com.baobaotao.web;import com.baobaotao.service.BbtForumService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import java.util.Collection;@Controller //<——①@RequestMapping("/forum.do")public class BbtForumController { @Autowired private BbtForumService bbtForumService; @RequestMapping //<——② public String listAllBoard() { bbtForumService.getAllBoard(); System.out.println("call listAllBoard method."); return "listBoard"; }}
从上面代码中,我们可以看出 BbtForumController 和一般的类并没有区别,它没有实现任何特殊的接口,因而是一个地道的 POJO(简单的JAVA对象)。让这个 POJO 与众不同的魔棒就是 Spring MVC 的注解!
在 ① 处使用了两个注解,分别是 @Controller 和 @RequestMapping。在“使用 Spring 2.5 基于注解驱动的 IoC”这篇文章里,笔者曾经指出过 @Controller、@Service 以及 @Repository 和 @Component 注解的作用是等价的:将一个类成为 Spring 容器的 Bean。
由于 Spring MVC 的 Controller 必须事先是一个 Bean,所以 @Controller 注解是不可缺少的。
真正让 BbtForumController 具备 Spring MVC Controller 功能的是 @RequestMapping 这个注解。@RequestMapping 可以标注在类定义处,将 Controller 和特定请求关联起来;还可以标注在方法签名处,以便进一步对请求进行分流。在 ① 处,我们让 BbtForumController 关联“/forum.do”的请求,而 ② 处,我们具体地指定 listAllBoard() 方法来处理请求。所以在类声明处标注的 @RequestMapping 相当于让 POJO 实现了 Controller 接口,而在方法定义处的 @RequestMapping 相当于让 POJO 扩展 Spring 预定义的 Controller(如 SimpleFormController 等)。
为了让基于注解的 Spring MVC 真正工作起来,需要在 Spring MVC 对应的 xxx-servlet.xml 配置文件中做一些手脚。在此之前,还是先来看一下 web.xml 的配置吧:
- 一个简单的基于注解的controller
- 基于注解的Controller
- 一个简单的基于注解的 Controller (spring 2.5 annotation 方式实现mvc )
- 一个简单的基于注解的 Controller (spring 2.5 annotation 方式实现mvc )
- 一个简单的基于注解的 Controller (spring 2.5 annotation 方式实现mvc )
- 基于注解的Controller控制器
- SpringMVC基于Controller的注解
- SpringMVC基于注解的controller
- SpringMVC基于Controller的注解
- Android基于元注解实现一个简单的字段注解
- SpringMVC 基于注解的Controller @RequestMapping @RequestParam..
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC中基于注解的Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- SpringMVC 基于注解的Controller @RequestMapping @RequestParam
- Spring MVC 中的基于注解的 Controller
- 记录学习过程中碰到的json对象数组字符串转成list方法
- 无人驾驶汽车系统入门(四)——反馈控制入门,PID控制
- 使用expdp和impdp远程导入导出库
- 程序员必备的600个英语词汇合集(2)
- C++设计模式——一个基于C++11的万用单例模板类
- 一个简单的基于注解的controller
- 文章标题
- 模拟+乱搞——我有特殊的懵题技巧
- Oracle的安装及可视化工具PL/SQL配置
- python 属性描述符
- Java的Math.random()随机函数的使用
- 设计模式-包装模式(代理模式、适配器模式、外观模式)
- Codeforces Round #442 (Div. 2) E. Danil and a Part-time Job【线段树+dfs序】
- arm汇编—str指令