1.springboot和spring+springmvc对比优势在哪
他们本质上是相同的,spring+springMVC是基于配置文件,springboot是基于某种约束(规范),若遵守他的约束那么什么配置都可以不写
springboot集成了spring+springMVC
在分布式,敏捷式开发的背景下,需要springboot轻量级的框架
2.详细描述@SpringBootApplication注解
@SpringBootApplication是一个组合注解,由@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan组成
①@SpringBootConfiguration的核心注解是@Configuration
@Configuration作用:加载项目中的配置类,把配置类中的bean加载到IOC容器中
启动类标注了@Configuration之后,本身其实也是一个IoC容器的配置类。
②@ComponentScan
@ComponentScan作用:扫描基本包及子包里的注解,加载到IOC容器中
自动扫描并加载符合条件的组件(比如@Component和@Repository等)或者bean定义,最终将这些bean定义加载到IoC容器中。
③ @EnableAutoConfiguration 核心注解
@EnableAutoConfiguration作用:把需要的spring的jar和springMVC的jar已经需要的容器(tomcat)封装为一个starter
@EnableAutoConfiguration 的核心注解是@Import
@EnableAutoConfiguration也是借助@Import的帮助,将所有符合自动配置条件的bean定义加载到IoC容器
@Import借助EnableAutoConfigurationImportSelector筛选出所有自动配置条件的bean,在通过SpringFactoriesLoader都加载到IoC容器并进行自动配置
@EnableAutoConfiguration会根据类路径中的jar依赖为项目进行自动配置,如:添加了spring-boot-starter-web依赖,会自动添加Tomcat和Spring MVC的依赖,Spring Boot会对Tomcat和Spring MVC进行自动配置。
3.深入探索SpringApplication执行流程
1、创建SpringApplication对象
2、执行初始化方法
3、创建、加载各种监听
4、加载配置文件—读取配置文件的过程
5、进行配置
6、创建并执行 资源对象