跳至主要內容

SpringBoot

酷风大约 1 分钟

SpringBoot

介绍

  • 搭建程序的脚手架
    • 快速构建Spring项目
  • 提供了一种快速使用Spring的方式
  • 预组装了Spring 及其他流行框架 的一系列组件
    • 无序关注版本号,自动版本仲裁
      • 也可更改指定版本号
  • 提供starter 简化Maven 配置,提供了丰富的starter组件,快速集成组件功能接入
  • 自动配置, 自动扫描
  • 内嵌tomcat、undertow等,并可配置参数

  • Spring Boot和Spring的关系就是整车和零部件的关系

    • 它们不是取代关系,试图跳过Spring直接学习Spring Boot是不可能的。
  • 版本

启动

  • 启动SpringBoot应用
    • application.yml,yml 层级格式
    • @SpringBootApplication : 自动配置和自动扫描
      • @SpringBootConfiguration
        • @Configuration
      • @EnableAutoConfiguration
        • @AutoConfigurationPackage
      • @ComponentScan
    • Spring Boot自动启动了嵌入式Tomcat
    • AutoConfiguration:自动
      • spring-boot-starter-jdbc: 引入时 自动扫描所有的XxxAutoConfiguration
        • DataSourceAutoConfiguration
        • DataSourceTransactionManagerAutoConfiguration
        • JdbcTemplateAutoConfiguration
      • ......
    • Spring Boot大量使用XxxAutoConfiguration来使得许多组件被自动化配置并创建,而这些创建过程又大量使用了Spring的Conditional功能
      • @ConditionalOnClass:在classpath中能找到DataSource和JdbcTemplate;
      • @ConditionalOnSingleCandidate(DataSource.class):在当前Bean的定义中能找到唯一的DataSource;
    • Spring Boot自动装配功能是通过自动扫描+条件装配实现的