Spring Boot笔记

1、谈谈你对Spring Boot的理解,以及那些优点

SpringBoot是用来快速开发Spring应用的一个脚手架,简化Spring应用的初始搭建以及开发过程

1.SpringBoot提供了很多内置的Starter结合自动配置,对主流框架无配置集成,开箱即用

2.简化开发

3.减少版本冲突 

2、Spring Boot的核心注解

1.SpringBootApplication注解:标注他是一个SpringBoot工程

2.SpringBootConfigration注解:表示启动类也是一个配置类

3.EnableAutoConfigration注解:自动配置类  

3、SpringBoot的自动配置原理

4、SpringBoot的jar为何可以直接运行?

1.SpringBoot提供了一个插件spring-boot-maven-plugin用于把程序打包成一个可执行的jar包

2.SpringBoot应用打包之后,包含了应用依赖的jar和loader相关的类

3.java -jar指令回去寻找jar包中MANIFEST.MF文件,在里面找到真正的执行类(Main-Class:JarLauncher.class)

4.启动的Main函数是JarLauncher,它负责创建一个LauncherURLClassLoader的类加载器,用来加载boot-lib下的jar包,并启动一个子线程去执行

MANIFEST.MF文件中的Start-Class,这个就是我们自己写的那个启动类了

5、Sping Boot源码启动

1.调用run方法之后,会生成一个SpringApplication的对象

  1.1.推测web应用类型(NONE、REACTIVE、SERVLET)

  1.2.从spring.factories中获取ApplicationContextInitializer对象

  1.3.从spring.factories中获取ApplicationListener对象

  1.4.推测Main方法所在的类 

2.然后在调用SpringApplication对象的run方法

   2.1.从spring.factories中获取SpringApplicationRunListener对象 -----> EventPublishingRunListener

   2.2.调用RunListener的starting方法

   2.3.将run方法的参数封装为DefaultApplicationArguments对象

   2.4.准备环境变量

   2.5.根据应用类型创建一个Spring容器

   2.6.初始化Spring容器

   2.7.把run方法中的配置类,注册成为一个bean

   2.8.listeners.contextLoaded方法

   2.9.调用refreshContext()  刷新Spring容器,会解析配置类、扫描、启动WebServer

版权声明:
作者:Mr李
链接:https://www.techfm.club/p/42299.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>