• SpringMVC注解汇总(一)-定义


    本文根据开涛哥学习SpringMVC汇总而成,方便更好查阅!

    网址:http://jinnianshilongnian.iteye.com/blog/1752171

    注解式控制器简介

    @Controller:用于标识是处理器类;

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

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

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

    @SessionAttributes:用于声明session级别存储的属性,放置在处理器类上,通常列出

    模型属性(如@ModelAttribute)对应的名称,则这些属性会透明的保存到session中;

    @InitBinder:自定义数据绑定注册支持,用于将请求参数转换到命令对象属性的对应类型;

     

    Spring3.0引入RESTful架构风格支持(通过@PathVariable注解和一些其他特性支持),且又引入了

    更多的注解支持:

    @CookieValue:cookie数据到处理器功能处理方法的方法参数上的绑定;

    @RequestHeader:请求头(header)数据到处理器功能处理方法的方法参数上的绑定;

    @RequestBody:请求的body体的绑定(通过HttpMessageConverter进行类型转换);

    @ResponseBody:处理器功能处理方法的返回值作为响应体(通过HttpMessageConverter进行类型转换);

    @ResponseStatus:定义处理器功能处理方法/异常处理器返回的状态码和原因;

    @ExceptionHandler:注解式声明异常处理器;

    @PathVariable:请求URI中的模板变量部分到处理器功能处理方法的方法参数上的绑定,

    从而支持RESTful架构风格的URI;

     

    Spring3.1使用新的HandlerMapping 和 HandlerAdapter来支持@Contoller和@RequestMapping

    注解处理器。

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

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

    提供更多的扩展点。

    使用在spring mvc的配置文件中配置***-servlet.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"/>  

    处理器定义

    1.@Controller

    格式:

    @Controller  

    public class HelloWorldController {  

    ……  

    }  

    推荐使用这种方式声明处理器,它和我们的@Service、@Repository很好的对应了我们常见的三层开发架构的组件。

    2.@RequestMapping

    格式:

    @RequestMapping  

    public class HelloWorldController {  

    ……  

    }  

    这种方式也是可以工作的,但如果在类上使用@ RequestMapping注解一般是用于

    窄化功能处理方法的映射的!(见下:)

    窄化请求映射

    格式:

     @Controller  

     @RequestMapping(value="/user")         //①处理器的通用映射前缀  

     public class HelloWorldController2 {  

         @RequestMapping(value = "/hello2")   //②相对于①处的映射进行窄化  

         public ModelAndView helloWorld() {  

              .....          //省略实现  

        }  

     }  

    ①类上的@RequestMapping(value="/user") 表示处理器的通用请求前缀;

    ②处理器功能处理方法上的是对①处映射的窄化。

    访问格式如下:

    窄化请求映射可以认为是方法级别的@RequestMapping继承类级别的@RequestMapping。

     

    窄化请求映射还有其他方式,如在类级别指定URL,而方法级别指定请求方法类型或参数等等;

    请求映射

    处理器定义好了,那接下来我们应该定义功能处理方法,接收用户请求处理并选择视图进行渲染。

    http请求信息包含六部分信息:

    ①请求方法,如GET或POST,表示提交的方式;

    URL,请求的地址信息;

    ③协议及版本

    ④请求头信息(包括Cookie信息);

    ⑤回车换行(CRLF);

    ⑥请求内容区(即请求的内容或数据),如表单提交时的参数数据、URL请求参数(?abc=123 ?后边的)等。

    想要了解HTTP/1.1协议,请访问http://tools.ietf.org/html/rfc2616

    那此处我们可以看到有①、②、④、⑥一般是可变的,因此我们可以这些信息进行请求到

    处理器的功能处理方法的映射,因此请求的映射分为如下几种:

    URL路径映射:使用URL映射请求到处理器的功能处理方法;

    请求方法映射限定:如限定功能处理方法只处理GET请求;

    请求参数映射限定:如限定只处理包含“abc”请求参数的请求;

    请求头映射限定:如限定只处理“Accept=application/json”的请求。

     

    接下来看看具体如何映射吧。

    下一节请求映射规则





  • 相关阅读:
    spring注解事务管理
    Spring切入点表达式常用写法
    JPA和事务管理
    maven仓库
    struts2拦截器
    js中 转义字符
    jquery中变量加$和不加$有什么区别!
    spring大乱炖
    第一章 java多线程
    CS:APP 05 笔记
  • 原文地址:https://www.cnblogs.com/ut2016-progam/p/6208059.html
Copyright © 2020-2023  润新知