SpringMVC与SpringBoot
SpringMVC的工作原理图:

工作原理:
(1)客户端(浏览器)发送请求至前端控制器DispatcherServlet
(2) DispatcherServlet收到请求调用HandlerMapping处理器映射器。
(3) HandlerMapping处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
(4) DispatcherServlet调用HandlerAdapter处理器适配器。
(5) HandlerAdapter经过适配调用具体的处理器(即Controller,也叫后端控制器)。
(6)Controller执行完成返回ModelAndView。
(7)HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet。
(8)DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
(9)ViewReslover解析后返回具体View。
(10)DispatcherServlet将返回的Model传给View(视图渲染)
(11)DispatcherServlet把 View 返回给请求者(浏览器)
什么是SpringBoot
SpringBoot是Spring 开源组织下的子项目,是 Spring 组件一站式解决方案
为什么要用SpringBoot
1. 完全没有代码生成和xml配置文件 2. 为Spring平台及第三方库提供开箱即用的设置
SpringBoot的自动配置原理
1、从@SpringBootApplication开始,进入之后有一个@EnableAutoConfiguration注解接口,该注解接口的作用就是开启自动配置,再进入后有两个注解接口,分别是@AutoConfigurationPackage和@Import({AutoConfigurationImportSelector.class}),其中@AutoConfigurationPackage进入之后有一个自动注册包的注解接口,它的作用就是注册从@ComponentScan扫描到的包;其次进入@Import({AutoConfigurationImportSelector.class})的类AutoConfigurationImportSelector,找到selectImports()方法,该方法调用了getCandidateConfigurations()方法,同时,这个方法又调用Spring Core包中的loadFactoryNames()方法,这个方法的作用是,会查询META-INF/spring.factories文件中包含的JAR文件,当找到spring.factories文件后,SpringFactoriesLoader将查询配置文件命名的属性, 最后调用loadSpringFactorues()遍历所有的自动配置,将它们封装为一个Properties。
(自动装配:在spring.factories中不是所有的配置都会自动生效,还要根据@ConditionalOnXX判断条件是否生效,当导入了对那个的starter,就有对应的启动器,有了启动器,自动装配才会生效。)
浙公网安备 33010602011771号