SpringBoot执行流程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

今天看项目代码,但是不知道SpringBoot的执行流程,在此记录学习一下

一、SpringBoot是什么?

  1. 他是依赖于spring的,比起spring,除了拥有spring的全部功能外,springboot无需繁琐的xml配置
  2. 这取决于它自身强大的自动装配功能,并且自身已经嵌入Tomcat,jetty等web容器,继承了springmvc,是的springboot可以直接运行,不需要额外的容器,
  3. 它提供了一些大型项目中常见的非功能性特性,比如嵌入式服务器,安全,指标,健康检测,外部配置等.

二、Spring Boot的核心功能

  1. 可以独立运行的Spring项目:Spring Boot可以以jar包的形式独立运行.

  2. 内嵌的Servlet容器:Spring Boot可以选择内嵌Tomcat,jetty或者Undertow,无须以war包的形式部署项目
  3. 简化的Maven配置:Spring Boot提供推荐的基础POM文件来简化Maven配置.
  4. 自动配置Spring:SpringBoot会根据项目依赖来自动配置Spring框架,极大地减少项目要使用的配置
  5. 提供生成就绪型功能:提供可以直接在生成环境中使用的功能,如性能指标,应用信息和应用健康检查.
  6. 无代码生成和xml配置:springboot不生成代码.完全不需要任何xml配置即可实现Spring的所有配置
  7. 约定大于配置

三.Spring Boot 常用注解

  1. @SpringBootApplication:表明这是一个SpringBoot应用
  2. @RestController:这意味着它会返回json格式的数据并且它是一个Controller类
  3. @RequestMapping可以处理多种http请求

四.Spring Boot 依赖管理机制

  1. maven具有依赖传递原则,A-B-C,A就拥有B和C,导入了场景启动器,它能自动把这个场景的所有核心依赖全部导入进来
  2. 为什么springboot的版本号都不用写?  
    1. 因为每个boot项目都有一个父项目spring-boot-starter-parent
    2. parent的父项目是spring-boot-dependencies
    3. 父项目 版本仲裁中心 把所有常见的jar的依赖版本都声明好了(我艹这个我感觉是真牛逼啊,省去了好多版本不兼容的问题啊)
    4. 例子:mysql-connector-j
  3. 自定义版本号:
    1. 利用maven的就近原则
      1. 直接在当前项目properties标签中声明父项目用的版本属性key
      2. 直接在导入依赖的时候声明版本
  4. 第三方jar包
    1. boot父项目没有管理的需要自行声明好

五.Spring Boot 常用注解

  1. 条件注解
    1. @ConditionalOnClass:如果类路径中存在这个类,则触发指定行为
    2. @ConditionalMissingClass:如果类路径中不存在这个行为,则触发指定行为
    3. @ConditionalOnBean:如果容器中存在这个Bean(组件).则触发指定行为
    4. @ConditionalOnMissingBean:如果容器中不存在这个Bean(组件),则触发指定行为
    5. @ConditionalOnBean(value=组件类型,name=组件名字):判断容器中是否有这个类型的组件,并且名字是指定的值
  2. 属性绑定:
    1. @ConfigurationProperties:声明组件的属性和配置文件哪些前缀开始项进行绑定
    2. @EnableConfigurationProperties:快速注册注解:
      1. 使用场景:SpringBoot默认只扫描自己主程序所在的包,如果导入第三方包,即使组件上标注了@Component,@ConfigurationProoerties注解也没用.因为组件都没有扫描上,此时使用这个注解就可以快速进行属性绑定并把组件注册进容器
    3. 将容器中任意组件(Bean)的属性值和配置文件的配置项的值进行绑定
      1. 给容器中注册组件(@Component,@Bean)
      2. 使用@ConfigurationProperties声明组件和配置文件的哪些配置项进行绑定

总结

参考学习:

9千字长文带你了解SpringBoot启动过程--史上最详细 SpringBoot启动流程-图文并茂_Fly丶X的博客-CSDN博客1、SpringBoot3-快速入门 · 语雀感谢尚硅谷springboot3教程

你可能感兴趣的:(java,spring,boot,spring,后端,mybatis)