SpringBoot 从入门到源码解析

SpringBoot 从入门到源码解析
SpringBoot 从入门到源码解析

快速入门
  • 创建 Maven 工程,引入依赖

    <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.4.5</version>
    </parent>
    
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
    </dependencies>
    
  • 创建主程序,运行main函数,浏览器直接访问。

    //启动类
    @SpringBootApplication
    public class Springboot01Application {
    
      public static void main(String[] args) {
          SpringApplication.run(Springboot01Application.class, args);
      }
    }
    
    //Controller控制层
    @RestController
    public class HelloController {
      @RequestMapping("/hello")
      public String hello(){
          return "hello spring boot";
      }
    }
    
  • 简化配置:唯一配置文件 application.properties

  • 简化部署:打包插件,打成jar包

    <build>
      <plugins>
        <plugin>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
      </plugins>
    </build>
    

原理分析
  • 依赖管理

    • 父项目做依赖管理,版本控制。
      SpringBoot 从入门到源码解析
    • 更改版本
      SpringBoot 从入门到源码解析
    • starter场景启动器
      SpringBoot 从入门到源码解析
  • 自动配置

    • 我们自己写的Controller、Service、Dao都必须在启动类的包内或者子包,这样就会自动扫描包。
      SpringBoot 从入门到源码解析

    • 引入spring boot starter依赖,启动主程序,之前xml中的组件都被自动配置了,一共127个,但是因为条件装配(@Conditional),最终会按需配置。
      SpringBoot 从入门到源码解析
      SpringBoot 从入门到源码解析
      SpringBoot 从入门到源码解析
      SpringBoot 从入门到源码解析

    • 配置文件的配置最终都对应一个类,这些类会在容器中创建对象。
      SpringBoot 从入门到源码解析
      SpringBoot 从入门到源码解析
      SpringBoot 从入门到源码解析

注解使用
  • @Conditional:满足条件则进行组件注入

  • @ImportResource:导入Spring配置文件XML中配置的bean

  • @ConfigurationProperties:配置绑定,读取properties文件内容,封装到bean
    SpringBoot 从入门到源码解析
    SpringBoot 从入门到源码解析
    SpringBoot 从入门到源码解析

上一篇:Spring Boot自动装配原理,SpringBootStarter


下一篇:SpringBootStarter的原理以及自定义简单的starter步骤