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

 更新时间:2021年03月23日 09:55:49   作者:柠檬时间  
这篇文章主要介绍了SpringMVC结构简介及常用注解汇总,帮助大家更好的理解和学习使用SpringMVC,感兴趣的朋友可以了解下

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值并注入目标方法的参数中

以上就是SpringMVC结构简介及常用注解汇总的详细内容,更多关于SpringMVC结构和常用注解的资料请关注脚本之家其它相关文章!

相关文章

  • Springboot 如何使用BindingResult校验参数

    Springboot 如何使用BindingResult校验参数

    这篇文章主要介绍了Springboot 如何使用BindingResult校验参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • 一文带你弄懂Java中线程池的原理

    一文带你弄懂Java中线程池的原理

    工作中,我们经常使用线程池,但是你真的了解线程池的原理吗?同时,线程池工作原理和底层实现原理也是面试经常问的考题,所以,今天我们一起聊聊线程池的原理吧
    2022-12-12
  • Java IO流对象的序列化和反序列化实例详解

    Java IO流对象的序列化和反序列化实例详解

    这篇文章主要介绍了Java IO流对象的序列化和反序列化实例详解的相关资料,需要的朋友可以参考下
    2017-05-05
  • Spring bean配置单例或多例模式方式

    Spring bean配置单例或多例模式方式

    这篇文章主要介绍了Spring bean配置单例或多例模式方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • 详解IDEA的快捷键及智能提示

    详解IDEA的快捷键及智能提示

    这篇文章主要介绍了详解IDEA的快捷键及智能提示,文中有非常详细的快捷键及智能提示的说明,对正在使用IDEA的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • SpringBoot定义Bean的几种实现方式

    SpringBoot定义Bean的几种实现方式

    本文主要介绍了SpringBoot定义Bean的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Spring Data JPA命名约定查询实现方法

    Spring Data JPA命名约定查询实现方法

    这篇文章主要为大家介绍了Spring Data JPA命名约定查询实现方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Java中的几种读取properties配置文件的方式

    Java中的几种读取properties配置文件的方式

    这篇文章主要介绍了Java中的几种读取properties配置文件的方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 关于Mybatis的@param注解及多个传参

    关于Mybatis的@param注解及多个传参

    这篇文章主要介绍了关于Mybatis的@param注解及多个传参,@Param的作用就是给参数命名,比如在mapper里面某方法A(int id),当添加注解后A(@Param(“userId”) int id),也就是说外部想要取出传入的id值,只需要取它的参数名userId就可以了,需要的朋友可以参考下
    2023-05-05
  • 详解SpringCloud Gateway 2020.0.2最新版

    详解SpringCloud Gateway 2020.0.2最新版

    这篇文章主要介绍了SpringCloud Gateway 2020.0.2最新版,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04

最新评论