SpringBoot


Springboot的哲学就是约定大于配置,是为了简化Spring配置的快速开发整合包,主要实现三大功能:
a.通过starter和依赖管理解决依赖问题(通过maven子父工程的方式)
b.通过自动配置,解决配置复杂问题
c.通过内嵌web容器,由应用启动tomcat,而不是tomcat启动应用,来解决部署运行问题。

1、启动流程

  1. 创建SpringApplication实例
    保存一些信息:包括
  • 保存主配置类等信息
  • 判断当前应用类型
  • 去spring.factory文件中找org.springframework.boot.Bootstraper, 初始化启动引导器
  • 去spring.factory文件中找ApplicationContextInitializer,容器初始化器
  • 去spring.factory文件中找ApplicationListener
  1. 运行SpringApplication
  • 创建引导上下文(Context环境) createBootstrapContext(),获取到所有bootstrappers依次执行initialize()来完成引导启动器器上下文环境的设置
  • 去spring.factory文件中找SpringApplicationRunListener,获取所有RunListener(运行监听器),为了方便所有Listener进行事件感知
  • 遍历SpringApplicationRunListener,调用starting方法,相当于通知所有监听器,项目正统在启动
  • 保存命令行参数
  • 准备环境:创建或返回基础环境信息,包括读取所有配置源的配置属性值,通知所有监听器当前环境准备完成
  • 创建IOC容器:根据项目类型创建容器;会创建AnnotationConfigServletWebServerApplicationContext
  • 准备ApplicationContext IOC容器的基本信息:保存环境信息,IOC容器的后置处理流程,应用初始化器:通知所有ApplicationContextInitializer调用initialize,对IOC容器进行初始化扩展功能,遍历所有的ApplicationListener调用contextPrepared
    刷新IOC容器,创建IOC容器中的所有组件
  • 遍历监听器调用listener.started(context)
  • 调用所有的runners:获取容器中的ApplicationRunner或者CommandLineRunner方法
  • 调用所有监听器的runnning方法;
  • 上述过程如果出现异常,则会调用Listener的failed方法。

2、自动装配原理

  1. SpringBoot启动时加载主配置类,开启自动配置功能@EnableAutoConfiguration
  2. @EnableAutoConfiguration作用:
    利用@EnableAutoConfigurationImportSelector给容器导入组件
    扫描所有jar包类路径下的META/INF/spring.factory,将文件中配置的自动配置类,加入到容器中,
    用他们来做自动配置,利用@EnableConfiguraionProperties指定的配置类,
    来从配置文件中获取指定的值和bean的属性进行绑定,完成自动配置。

3、SpringBoot如何实现与其他组件整合

Springboot 通过引入starter 依赖包,实现与各种组件的融合。SpringBoot 拥有很多可以方便使用的Starter,比如Spring-boot-starter-log4j等,各自都代表了一个相对完整的功能模块。Starter是一个集成接合器,完成两件事:引入模块所需的相关jar包以及自动配置模块所需的属性。

4、如何自定义starter

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值