使用SpringBoot时的疑问及其解答
1. Tomcat是怎么来的?
在SpringBoot里面内嵌了Tomcat,即spring-boot-starter-web -> spring-boot-starter-tomcat,导入了Tomcat
2. SpringApplication.run是怎么启动的?
- 初始化工作:准备环境,打印baner,创建容器
- 加载项目代码完成自动配置
- 打包项目到Tomcat
- 启动Tomcat
3. web.xml,SpringMvc等其它配置去哪儿了?
自动配置
4. spring-boot-starter-parent有什么用?
是SpringBoot的父工程,管理了很多的基础依赖,如果我们要用里面的依赖,直接导入,不需要再写版本号。
5. spring-boot-starter-web有什么用?
用来集成web(SpringMvc),把web层需要的jar包都给你引进来了,包括:SpringMvc相关的包,日志相关包,json相关包,自动配置包,Tomcat包等等。
6. @RestController的作用
相当于@Controller + @ResponseBody
7. @EnableAutoConfiguration的作用
开启自动配置:通过一个导入选择器 AutoConfigurationImportSelector 会负责 spring.factories 文件中加载一些自动配置类。比如:前端控制器就通过一个 DispatcherServletAutoConfiguration 自动配置类完成,在这个类里面通过定义bean的方式定义了 DispatcherServlet 的实例对象。
8. 项目打包方式为什么是jar?
SpringBoot默认打jar包。
9. dependencies与dependencyManagement的区别
dependencies:父工程的dependencies标签下面的jar包会被子模块直接继承使用。
dependencyManagement:声明/管理依赖的,父工程的 dependencyManagement 标签下面的jar包默认子模块是用不了的,如果子模块要用这个标签里面的jar包得显示的写出来,这个标签要用来统一管理jar包的版本号。