SpringMVC底层执行流程及原理解析

这篇文章主要介绍了SpringMVC底层执行流程及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一个简单的HelloSpringMVC程序

先在web,xml中注册一个前端控制器(DispatcherServlet)

    springmvcorg.springframework.web.servlet.DispatcherServlet contextConfigLocationclasspath:springmvc-servlet.xml1 springmvc/

配置文件(springmvc-servlet.xml)

HandlerMapper是处理器映射器-->根据请求的地址去找处理器(如案例中的"/hello")

HandlerAdapter是处理器适配器-->找到处理器后根据id去适配对应的controller(如适配到案例中的HelloController),controller会返回ModelAndView及其前端数据

ViewResolver是视图解析器,其作用为:

1.获取到ModelAndView中的数据

2.解析视图名称

3.拼接视图名称

4.数据渲染

    

controller层:

实现Controller接口,重写内部方法(一般不会使用,这是底层原理)

ModelAndView是模型、视图

 public class HelloController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { ModelAndView mv = new ModelAndView(); mv.addObject("msg","HelloSpringMVC!"); mv.setViewName("test"); return mv; } }

底层流程图

实线是SpringMVC已经帮你实现好了,虚线是需要自己手动

以上仅是说明底层执行原理,实际开发并不会这样去使用!

在实际开发中SpringMVC推荐使用注解的方式

在注解开发中,不需要我们去配置处理器适配器和处理器映射器。

web.xml中只需配置DispatcherServlet前端控制器

    SpringMVCorg.springframework.web.servlet.DispatcherServlet contextConfigLocationclasspath:springmvc-servlet.xml1 SpringMVC/

在springmvc-servlet.xml中配置视图解析器等

   /*组件扫描,用于扫描controller下的包*/               /*静态资源过滤*/                  /*这个就帮助我们配置了映射器以及适配器*/
    

contorller

 @Controller    //说明这类被Spring托管了 @RequestMapping("/hello") public class HelloController { @RequestMapping("/h1")   //这个注解会执行视图解析器 public String hello(Model model){ model.addAttribute("msg","helloSpringMVCAnnotation"); return "hello"; } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持html中文网。

以上就是SpringMVC底层执行流程及原理解析的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java