zoukankan      html  css  js  c++  java
  • Spring MVC工作流程

    MVC
    M:model,是业务的处理以及业务规则的制定。模型接受视图请求的数据,并返回最终的结果
    V:view,代表用户交互界面,对于web应用来说,可以是html、jsp、xml等等。一个应用可以有不同的视图,MVC设计模式对于视图的处理只限于视图上数据的采集和处理,以及用户的请求,不包括视图上的业务流程的处理,这个归model处理
    C:Controller,可以理解为从用户那里接受请求,将模型和视图匹配在一起,共同完成用户的请求。划分控制层的作用很明显,它清楚的告诉你它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求,控制层不做任何数据处理。
    1,当用户请求发送到前端控制器(DispatcherServlet)
    2,前端控制器收到请求调用HandlerMapping处理器映射器
    3,根据映射,处理器映射器可以找到具体的处理器(可以根据xml.注解等等),并生成处理器对象和处理器拦截器(不一定有)一并返回给前端处理器
    4,前端处理器调用处理器适配器(HandlerAdapter)
    5,前端处理器经过适配之后通过处理器适配器 调用具体的处理器(也就是Controller,也叫后端控制器)
    6,Contorller处理完成之后返回ModelAndView给处理器适配器
    7,处理器适配器将处理器执行结果返回给前端控制器
    8,前端控制器将ModelAndView传给视图解析器(ViewReslover)
    9,视图解析器经过解析后返回具体的view(就是html,jsp啥的)
    10,前端处理器根绝view进行渲染视图(将模型数据填充到视图中)
     
     
    MVC常用注解:
    @Controller:标记这个类是一个控制器
    @RequestMapping:给控制器方法绑定一个url
    @ResponseBody:将java对象转成json,并且发送给客户端
    @RequestBody:将客户端请求过来的json转化成java对象
    @RequestParam:当表单参数和方法形参不一致时,做一个名字映射
     
    Rest风格的api
    @RestController  等于 @Controller+ @ResponseBody
     
    springMVC是单例模式的框架,但他是线程安全的,因为springmvc没有成员变量 所有参数的封装都是基于方法的,属于当前线程的私有变量,因此线程是安全的。
    不和别人一样,不复制只真正理解
  • 相关阅读:
    JVM发生OOM调优
    行云创新完成B轮融资,阿里云独家投资
    行云创新直播回顾:DDD“爱”上Dapr
    如何通过Dapr快速实现DDD?
    通过Dapr快速落地DDD,实现高并发
    上K8s,研发团队如何从容一点?
    直播来了!等你围观!聊聊服务网格那些事儿
    服务网格出现流量故障该咋办?SolarMesh发布重大功能
    mysql 授权问题
    Centos Mysql5.7 安装
  • 原文地址:https://www.cnblogs.com/Vinlen/p/12750010.html
Copyright © 2011-2022 走看看