Springboot

四大核心

1、自动装配

@SpringBootApplication相当于三个 @Enablexxx 自动装配某个功能

  • @SpringBootConfiguration
  • @EnableAutoConfiguration 通过@Import来完成 META-INF/spring.factories
    • @import
      • 单个bean
      • 多个配置类
      • spring.factories 一个配置文件根据bean全路径创建对象(实现ImporSelector接口传入 文件名字数组)(springboot启动时通过@Import导入所有的spring.factories文件)
      • ImportBeanDefinitionRestrar
  • @ComponentScan 扫描有@Component的类

2、Starter

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201012081022525.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21lbmdtbF9zbWlsZQ==,size_16,color_FFFFFF,t_70#pic_center)

3、内置web容器

  • tomcat源码
  • 构建成starter灵活配置port host
  • 是springboot官方实现 xxxAutoConfiguration不在中间件starter中写着

4、监控

Endpoints: 需要监控的端点

启动流程

  • 加载主类:@SpringBootApplication(@SpringBootConfiguration、@EnableAutoConfiguration 和 @ComponentScan)
  • 创建 SpringApplication 对象:SpringApplication.run() 方法,会创建一个 SpringApplication 对象。这个对象负责管理 Spring 应用的启动和初始化
  • 准备环境:SpringApplication 对象负责准备 Spring 应用的环境。这包括读取配置文件、解析命令行参数、收集系统环境变量等。这些环境属性将会被用于配置应用上下文和其他组件
  • 创建应用上下文:SpringApplication 使用环境信息初始化 Spring 应用上下文ApplicationContext(管理bean)。根据应用是 Web 应用还是非 Web 应用,Spring Boot 会创建对应的应用上下文
  • 加载 Bean 定义:应用上下文初始化后,Spring Boot 开始加载 Bean 的定义。它会扫描项目中的组件和配置类(由 @ComponentScan 和 @Configuration 注解指定),并将它们注册到应用上下文中
  • 自动配置:Spring Boot 的自动配置机制会根据项目中添加的 jar 依赖,尝试猜测并配置可能需要的 Bean。自动配置类会根据条件进行加载和执行,以确保配置的正确性和合理性
  • Bean 实例化:所有配置类和组件被加载后,Spring 容器会根据需要创建和配置 Bean 实例。这些 Bean 可能是由 Spring Boot 提供的自动配置,也可能是开发者自定义的 Bean
  • 刷新应用上下文:当所有 Bean 定义加载完毕后,应用上下文会被刷新。在这个阶段,Spring Boot 会执行一系列的初始化动作,确保所有 Bean 都被正确地创建和配置。
  • 运行应用:应用上下文初始化完成后,Spring Boot 将应用状态标记为“已启动”。此时,应用已准备就绪,可以处理请求和响应。
  • 触发生命周期事件:在应用启动过程中,Spring Boot 会触发一系列的生命周期事件,如应用启动事件、应用就绪事件等。开发者可以监听这些事件并执行相应的操作。
    通过这些步骤,Spring Boot 实现了一个简洁而高效的启动过程,使得开发者能够快速启动和运行一个独立的、生产级的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值