SpringBoot核心以及工作机制

SpringBoot的模块

SpringBoot的核心模块——spring-boot

SpringBoot核心以及工作机制_第1张图片

  • 1、SpringApplication类:提供了静态方法以便于编写一个独立的Spring应用程序。主要职责是创建和更新一个合适的Spring应用程序上下文(ApplicationContext)
    SpringBoot核心以及工作机制_第2张图片
  • 2、给Web应用提供了一个可选的Web容器(Tomcat)
  • 3、通过application.properties文件等方式提供一流的外部配置的支持

SpringBoot的start模块

SpringBoot核心以及工作机制_第3张图片

  • 1、为开发者提供’一站式’服务,通过在项目中添加对应框架的starter依赖,可以免去寻找依赖包的麻烦
  • 2、spring-boot-starter:是SpringBoot的核心启动器,包含了自动配置、日志和yaml
  • 3、spring-boot-starter-aop:支持面向切面编程,包含了spring-aop和AspectJ
  • 4、spring-boot-starter-web:支持全栈式Web开发,包括Tomcat和spring-webmvc
  • 5、spring-boot-starter-log4j:支持log4j日志框架

SpringBoot的工作机制

  • 1、应用启动的入口类:
    SpringBoot核心以及工作机制_第4张图片
    SpringBoot核心以及工作机制_第5张图片
    在这个启动类中,使用了@SpringBootApplication注解,这个注解作用和**@ComponentScan(组件注解)、@Configuration(配置类)、@EnableAutoConfiguration(启动自动配置)三个等价**
    - 2、SpringApplication的执行流程
  1. SpringApplication实例化和初始化
  2. 执行run方法:遍历执行所有通过SpringFactoriesLoader可以查找并加载的SpringApplicationRunListener调用它们的started()方法,告诉这些SpringApplicationRunListener即将开始执行SpringBoot
  3. 配置SpringBoot要用到的环境:通过遍历调用SpringApplicationRunListener的environmentPrepared()方法通过SpringBoot应用:要用的环境已经准备好了
  4. 启动并打印Banner
  5. 调用SpringApplicationRunListener的contextPrepared()方法通知SpringBoot,应用要用到的上下文环境已经准备好了。遍历SpringApplicationRunListener的contextLoader()方法加载上下文环境,调用ApplicationContext的refresh()方法完成IOC容器的加载
  6. 查看是否有CommandLineRunner,若有就遍历
  7. 遍历并执行SpringApplicationRunListener类下的finished()方法
  • 3 . SpringBoot应用启动时控制台输出的信息
  1. 启动App
    在这里插入图片描述
  2. 查找active profile,若没有则设为default
    在这里插入图片描述
  3. 刷新上下文
    在这里插入图片描述
  4. 初始化服务器(Tomcat)、启动Tomcat服务、启动Servlet
    SpringBoot核心以及工作机制_第6张图片
    在这里插入图片描述
  5. 初始化内嵌的Spring的WebApplicationContext
    在这里插入图片描述
  6. 映射Servlet和Filter
    在这里插入图片描述
  7. 查找@ControllerAdvice
    在这里插入图片描述
  8. 路径映射
    在这里插入图片描述
  9. Tomcat启动完毕
    在这里插入图片描述
  10. App启动消耗的时间
    在这里插入图片描述

SpringBoot的配置文件

SpringBoot核心以及工作机制_第7张图片

默认配置文件(后缀为:.properties)

application.properties
项目启动时,SpringBoot会从以下两个路径搜索并加载配置文件

    src\main\resources
	
    src\main\resources\config

后缀为yml的格式的配置文件

可以用application.yml文件来替代application.properties文件;
yml文件用缩进代替properties文件中相同的前缀;值得注意的是yml文件的值前面都有一个空格
SpringBoot核心以及工作机制_第8张图片

配置文件的读取顺序

  1. config/application.properties(项目根目录中config目录下)
  2. application.properties(项目根目录下)
  3. resources/config/application.properties(项目resources目录中config目录下)
  4. resources/application.properties(项目的resources目录下)

你可能感兴趣的:(springBoot,spring,spring,boot,spring,java)