Singerw's Repository Singerw's Repository
首页
  • 相关文章

    • HTML相关文章
    • CSS相关文章
    • JavaScript相关文章
  • 学习笔记

    • JavaScript笔记
    • ES6笔记
    • Vue笔记
  • 相关文章

    • Spring相关文章
    • SpringBoot相关文章
    • MyBatis相关文章
    • MySQL相关文章
  • 学习笔记

    • SpringBoot笔记
    • Spring笔记
    • MyBatis笔记
    • MySQL笔记
    • JavaWeb笔记
    • JavaCore笔记
  • 学习笔记

    • Linux笔记
    • Git笔记
    • 技术文档
  • 偏门技术

    • GitHub技巧
    • 博客搭建
    • 科学上网
  • 安装教程

    • JDK
    • MySQL
    • Node.js
    • Linux
  • 终身学习
  • 面试人生
  • 心情杂货
  • 生活随笔
  • 归档
  • 标签
GitHub (opens new window)

Singerw

谁能够凭爱意将富士山私有
首页
  • 相关文章

    • HTML相关文章
    • CSS相关文章
    • JavaScript相关文章
  • 学习笔记

    • JavaScript笔记
    • ES6笔记
    • Vue笔记
  • 相关文章

    • Spring相关文章
    • SpringBoot相关文章
    • MyBatis相关文章
    • MySQL相关文章
  • 学习笔记

    • SpringBoot笔记
    • Spring笔记
    • MyBatis笔记
    • MySQL笔记
    • JavaWeb笔记
    • JavaCore笔记
  • 学习笔记

    • Linux笔记
    • Git笔记
    • 技术文档
  • 偏门技术

    • GitHub技巧
    • 博客搭建
    • 科学上网
  • 安装教程

    • JDK
    • MySQL
    • Node.js
    • Linux
  • 终身学习
  • 面试人生
  • 心情杂货
  • 生活随笔
  • 归档
  • 标签
GitHub (opens new window)
  • SpringBoot学习笔记
  • SpringBoot优点与简单介绍
  • SpringBoot源码简单解析
    • 1、SpringBootApplication
  • 自定义banner
  • 配置文件存储位置分析
  • 多环境配置及配置文件位置
  • 配置热部署
  • SpringBoot自动配置原理
  • SpringBoot整合MyBatis
  • 集成PageHelper分页插件
  • 集成logback日志
  • 整合Druid数据源
  • 整合Swagger接口文档
  • Thymeleaf模板引擎使用
  • JPA的使用
  • JPA+Redis
  • Maven资源导出问题终极版
  • SpringBoot锁 -Mybatis
  • 《SpringBoot》学习笔记
Singerw
2021-09-25

SpringBoot源码简单解析

# SpringBoot源码简单解析

spring-boot-starter-web :帮我们导入了web模块正常运行所依赖的组件;

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
1
2
3
4

出厂默认就写好了很多starter,如:

  • spring-boot-starter-activemq
  • spring-boot-starter-aop
  • spring-boot-starter-data-redis
  • spring-boot-starter-data-solr

重要提示:Spring Boot将所有的绝大部分框架整合场景都进行了抽取,做成一个个的starters(启动器),只需要在项目里面引入这些starter相关整合所需的依赖都会导入进来。

# 1、SpringBootApplication

@SpringBootApplication用于标识spring boot应用程序,代表该类是一个spring boot启动类

Spring boot运行这个类的main方法时启动SpringBoot应用。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
1
2
3
4
5
6
7
8
9
10
  • @SpringBootConfiguration: Spring Boot的配置类。标注在类上表示是一个Spring Boot的配置类.

  • @Configuration:配置类上来标注这个注解。配置类相当于配置文件。配置类也是容器中的一个组件。@Component把组件实例化到spring容器中。

  • @EnableAutoConfiguration:开启自动配置功能;当我们需要Spring Boot帮我们自动配置所需要的配置,@EnableAutoConfiguration告诉Spring Boot开启自动配置功能,这样Spring Boot会自动配置好并使之生效。

  • @AutoConfigurationPackage:自动配置包

  • @Import(AutoConfigurationPackages.Registrar.class)

    • Spring的底层注解@Import,给容器中导入一个组件。导入的组件由AutoConfigurationPackages.Registrar.class。将主配置类(标注@SpringBootApplication注解的类)的所在目录的包及下面所有子包里面的所有组件扫描到Spring容器。
  • @Import(EnableAutoConfigurationImportSelector.class) 给容器中导入组件。

  • EnableAutoConfigurationImportSelector:组件的选择器。

    • 将所有需要导入的组件以全类名的方式返回,这些组件就会被添加到容器中。 组件的选择器给容器中导入非常多的自动配置类(xxxAutoConfiguration),给容器中导入这个场景需要的所有组件,并配置好这些组件。
编辑 (opens new window)
#SpringBoot
SpringBoot优点与简单介绍
自定义banner

← SpringBoot优点与简单介绍 自定义banner→

最近更新
01
Maven资源导出问题终极版
10-12
02
《MyBatis-Plus》学习笔记
10-07
03
MyBatis-Plus—配置日志
10-07
更多文章>
Theme by Vdoing | Copyright © 2020-2021 版权所有 | repository.singerw.com
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×