SpringBoot、Spring MVC工作原理和区别简述

1.SpringBoot工作原理:

    SpringBoot的一个关键注解是@SpringBootApplication,在这个注解中有三个重要注解:
    @Configuration -- 就是Spring IOC容器的配置类,被Configuration注解的java类称为

                                 JavaConfig配置类,它可以与@Bean配合使用,在这个类中的方法

                                 上使用@Bean注解,返回值将作为一个bean定义注册到Spring的IOC容器
    @ComponentScan  --相当于Spring xml配置中的<context:component-scan />,可以
                                       自动扫描并加载符合条件的组件,最终这些bean定义加载到IOC容器
    @EnableAutoConfiguration -- 借助@Import注解,引入AutoConfigurationImportSelector类,

                                                    该类调用SpringFactoriesLoder加载所有spring.factories文件,

                                                    将所有符合自动配置条件的bean定义注册到IOC容器

2.Spring MVC工作原理

      Spring MVC是依靠前端控制器DispatherServlet的调度在工作,DispatherServlet的继承关系如下图:

       

           DispatcherServlet继承了FrameworkServlet,FrameworkServlet继承了HttpServletBean,

           HttpServletBean继承了HttpServlet,HttpServlet的service方法会根据请求类型不同调用

           doGet、doPost等方法,而这些方法是在HttpServletBean中实现的,HttpServletBean的

           这些方法又调用了processRequest方法,processRequest方法调用了doService,而

           doService是在DispatherServlet类中实现的,doService方法调用了doDispatch方法。

                     在doDispatch方法中体现了DispatherServlet的工作流程:

                    1.通过HandlerMapping得到处理器执行链HandlerExecutionChain对象,

                       HandlerExecutionChain对象包含了处理器对象(Handler)和拦截器对象;

                   2.在调用HandlerAdapter生成ModelAndView之前,执行拦截器的preHandle方法,

                     如果返回false,直接返回,HandlerExecutionChain中的处理器对象不会执行,

                     返回true继续执行;

                   3.doDispatch调用处理器适配器HandlerAdapter返回ModelAndView,接着执行

                      拦截器的postHandle方法(如果配置了拦截器,可以在该方法中对ModelAndView

                      进行操作);

                   4.通过render方法调用视图解析器ViewResolver返回视图对象View,然后调用View

                     的render方法将model数据渲染到视图;

                  5.在渲染完view之后,返回视图到客户端显示之前,执行拦截器的afterCompletion方法;

                  6.返回视图呈现用户

3.Spring Boot与Spring MVC的区别

      1.Spring Boot是Spring和Spring MVC的整合,而Spring MVC只是Spring的一个模块,一个轻量级的Web层框架

      2.Spring Boot几乎可以实现零配置,所有功能使用注解进行开发,运用了'约定大于配置'的思想,简化了项目开发

         难度,而Spring MVC需要依赖于xml配置进行开发

     3.Spring Boot提供了内置的tomcat,可以打成jar包直接运行,也可以使用外置tomcat

     4.Spring Boot还继承了许多第三方库配置,例如,JDBC, Mongo, Redis等,应用这些第三方库,几乎可以零配置

   

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值