1.1 SpringBoot
是什么?
Spring Boot
是一个全新的
Java
软件开发框架,很多人现在把它理解为一个脚手架。它基
于快速构建理念,通过约定大于配置,开箱即用的方式,来简化
Spring
项目的初始搭建以
及开发过程,提高开发效率。
1.2 SpringBoot
核心优势是什么?
SpringBoot
为我们的开发提供了起步依赖
(Starter Dependency)
、自动配置
(Auto
Configuration)
、健康检查
(Actator)
、嵌入式服务
(Tomcat,Jetty)
等核心特性,基于这些特
性和优势可以更好的服务我们的开发过程。可以更好的简化项目构建、代码编写、项目配置、
项目部署等,可以说
springboot
技术是大势所趋。
1.3 Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含 了以下 3 个注解: @SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。 @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项, 例 如: java 如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。 @ComponentScan:Spring组件扫描。
1.4 SpringBoot 实现热部署有哪几种方式?
-
热部署就是可以不用重新运行SpringBoot项目可以实现操作后台代码自动更新到以运行的项目中
-
主要有两种方式:
-
Spring Loaded
-
Spring-boot-devtools
-
1.5 SpringBoot
的启动过程是怎样的?
在
SpringBoot
启动时,其大概过程,如图所示:
其基本启动过程描述如下:
1) 基于配置加载类(通过 ClassLoader 将指定位置的类读到内存->底层通过线程调用 IO
从磁盘读取到内存)。
2) 对类进行分析(创建字节码对象-Class 类型,通过反射获取器配置信息)。
3) 对于指定配置 ( 例 如 由 spring 特 定 注 解 描 述 ) 的 对 象 存 储 其 配 置 信 息 ( 借 助
BeanDefinition 对象存储)。
4) 基于 BeanDefinition 对象中 class 的配置构建类的实例(Bean 对象),并进行 bean 对象
的管理(可能会存储到 bean 池)。