SpringMVC结构简介及常用注解汇总

作者:柠檬时间 时间:2023-10-25 09:16:59 

目录
  • MVC结构简介

  • SpringMVC简介

  • SpringMVC执行流程

  • 常用注解

    • 1. @Controller

    • 2. @ResponseBody

    • 3. @RestController

    • 4. @RequestMapping

    • 5. @PathVariable

    • 6. @RequestParam

    • 7. @RequestHeader

    • 8. @RequestHeader

MVC结构简介

Model(模型):数据模型,提供要展示的数据,因此包含数据和行为。现在一般分离为数据层Dao和服务层Service,提供了模型数据查询和模型数据的状态更新等功能。
View(视图):负责进行模型的展示,一般指用户界面。
Controller(控制器):接受用户请求,并委托模型进行处理(状态改变),处理完返回模型数据给视图,交由视图进行展示。

SpringMVC简介

SpringMVC是SpringFramework的一部分,是Java实现MVC的轻量级Web框架。
Spring的web框架围绕DispatcherServlet调度Servlet进行设计,DispatcherServlet的作用是将请求分发到不同的处理控制器Controller。
SpringMVC与Spring无缝集成(使用SpringIoc和Aop),使用约定优于配置,能够进行简单junit测试,支持Restful风格,异常处理,数据映射, * 等等。

SpringMVC执行流程

  • 用户发出请求,DispatcherServlet前置控制器接收并拦截请求

  • HandlerMapping处理器映射根据DispatcherServlet给予请求url查找handler

  • HandlerExecution表示具体的Handler,其主要作用是根据url查找对应控制器,将解析后的信息传递给DispatcherServlet

  • DispatcherServlet根据解析后的信息交由HandlerAdapter

  • HandlerAdapter按照信息把处理交予对应的Controller执行

  • Controller处理过后把处理信息如ModelAndView交还HandlerAdapter,HandlerAdapter再把视图逻辑或模型交还DispatcherServlet

  • DispatcherSerlvet再调用视图解析器ViewResovler对逻辑视图进行解析,解析过后再将最终视图结果呈现给用户

常用注解

1. @Controller

@Controller注解的控制器负责处理DispatcherServlet分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model,再将该Model返回给对应的View进行展示。

2. @ResponseBody

@ResponseBody注解用于将Controller的方法返回的对象根据Http Request Header的Accept内容,通过适当的HttpMessageConverter转换为指定格式后,写入Response对象的body数据区。

3. @RestController

@Controller和@ResponseBody相加的作用。

4. @RequestMapping

@RequestMapping用于处理请求地址映射的注解,用于类或方法上。用于类上,表示类的所有响应请求的方法都是以该地址作为父路径。
@RequestMappping的常用参数是value和method,分别表示请求url,请求类型。method有GET,POST,PUT,DELETE四种选择,http只支持GET和POST,但SpringMVC适配了另外两种,在使用PUT和DELETE请求时,后台会将其转换成POST。

5. @PathVariable

@PathVariable能够映射url绑定的占位符,因此,我们可以把url中的{xxx}占位符绑定到操作方法的参数@PathVariable{"xxx"}中,增加了restful url构造的灵活性。

6. @RequestParam

@RequestParam用于处理请求参数,使用@PathVariable可以获取请求参数,这是一个Rest风格的URL,使用炸占位符的方式携带一个参数,但是它并不是真正意义的请求参数。
@RequestParam标识的参数需要url请求时一定携带,要不然就报错,除非@RequestParam的参数required设为false。

7. @RequestHeader

@RequestHeader和@RequestParam的用法相同,它能够获取请求头的信息并注入目标方法的参数中

8. @RequestHeader

@CookieValue也和和@RequestParam的用法相同,它是用来获取cookie值的,它能够将获取cookie值并注入目标方法的参数中

来源:https://segmentfault.com/a/1190000039409581

标签:SpringMVC,结构,常用注解
0
投稿

猜你喜欢

  • Android开发之android_gps定位服务简单实现

    2023-07-31 20:02:25
  • C++类与对象深入之构造函数与析构函数详解

    2021-06-29 13:44:44
  • Android性能优化大图治理示例详解

    2023-12-13 00:18:01
  • java 二叉查找树实例代码

    2022-07-23 22:54:28
  • Java数组传递及可变参数操作实例详解

    2023-08-26 21:21:59
  • 一篇文章带你了解Java Spring基础与IOC

    2021-07-06 07:54:49
  • Java 将PPT幻灯片转为HTML文件的实现思路

    2022-12-12 12:00:35
  • SpringBoot打Jar包在命令行运行流程详解

    2023-11-24 16:53:59
  • java中List分页的几种方法介绍

    2022-03-01 12:04:28
  • ArrayList详解和使用示例_动力节点Java学院整理

    2023-08-05 13:15:41
  • C#调用VB进行简繁转换的方法

    2023-02-25 23:19:43
  • spring boot项目快速构建的全步骤

    2023-11-16 21:16:38
  • Spring Validation方法实现原理分析

    2023-09-04 17:11:55
  • listview控件实现点击列表头进行listview排序示例分享

    2023-06-06 18:00:39
  • mybatis-plus排除非表中字段的操作

    2022-04-22 03:48:41
  • Maven的安装配置详解

    2023-11-24 08:52:05
  • 你真的知道Java中对象的销毁吗

    2022-09-14 22:31:38
  • Java编程实现向文本文件中读取数据之Scanner用法示例

    2022-08-01 03:38:57
  • Android实现网页图片浏览功能

    2023-09-05 00:16:09
  • Android简单音乐播放实例

    2023-04-13 05:49:55
  • asp之家 软件编程 m.aspxhome.com