首页 > 代码库 > SpringMvc 控制器注解简介

SpringMvc 控制器注解简介

Spring2.5之前,我们是通过实现Control接口或实现来定义我们的处理器类。

Spring2.5引入了注解处理器支持,通过@controller@requestMapping注解定义我们的类,并提供了一组强大的注解:

需要通过处理器映射

DefaultAnnotationHandlerMapping和处理器适配器AnnotationMethodHandlerAdapter来开启支持@Controller 和@RequestMapping注解的处理器。

@controller用于标识是处理器类

@RequestMapping:请求到处理器功能方法的映射规则;

@RequestParam:请求参数到处理器功能处理方法的方法参数上的绑定;

@ModelAttribute:请求参数到命令对象的绑定;

Spring3.0

使用了新的HandlerMappingHandlerAdapter支持@Controller@RequestMapping注解处理器

新的@Contoller和@RequestMapping注解支持类:处理器映射RequestMappingHandlerMapping

和处理器适配器RequestMappingHandlerAdapter组合来代替Spring2.5开始的处理器映射DefaultAnnotationHandlerMapping和处理器适配器AnnotationMethodHandlerAdapter

下面我们来了解下基本的注解

处理器的映射分配以下几种

  1. URL路径映射:使用URL映射请求到处理器的功能处理方法;
  2. 请求方法映射限定:如限定功能处理方法只处理GET请求;
  3. 请求参数映射限定:如限定只处理包含“abc”请求参数的请求;
  4. 请求头映射限定:如限定只处理“Accept=application/json”的请求

控制器的实现

1定义处理器@Controller

@Controller ///①将一个POJO类声明为处理器
@RequestMapping("/ExamQueryQuestion") ///②请求URL到处理器功能处理方法的映射
public classQueryQuestionController {

}

1.1窄化请求映射@RequestMapping

http://192.168.24.9:8080/itoo-exam-questionbankmanage-web/ExamQueryQuestion/toQuestionTypesExcel

@Controller ///①将一个POJO类声明为处理器

@RequestMapping("/ExamQueryQuestion") ///通用请求前缀

 public class QueryQuestionController {

@RequestMapping("/toQuestionTypesExcel")

public StringtoQuestionTypesExcel(HttpServletRequest request,

HttpServletResponse resposne) {

return"/ExamQueryQuestion";

}

 

}

可以通过在一个POJO类上放置@Controller@RequestMapping,即可把一个POJO类变身为处理器;

技术分享

2Spring配置文件spring-mvc.xml

<!--Spring3.1开始的注解 HandlerMapping --> 
<bean  
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> 
<!--Spring3.1开始的注解 HandlerAdapter --> 
<bean 
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> 

3视图解析器的配置

还是使用之前的org.springframework.web.servlet.view.InternalResourceViewResolver

4处理器的配置

<!-- 处理器 --> 
<beanclass="com.tgb.itoo.exam.questionbankmanage.controller.QueryQuestionController"/> 

只需要将处理器实现类注册到spring配置文件即可,springDefaultAnnotationHandlerMappingRequestMappingHandlerMapping能根据注解@Controller@RequestMapping自动发现。

小结:

 本内容是Spring其中的一小部分,其内容为简单的注入方法,不再有配置文件,当然前期学习的配置文件方式的注入也是各有千秋的,理解起来基本不多什么,简单记录两种方式的学习。

 

SpringMvc 控制器注解简介