SpringBoot学习笔记—— 自动装配原理

Posted 玛丽莲茼蒿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot学习笔记—— 自动装配原理相关的知识,希望对你有一定的参考价值。

【狂神说Java】SpringBoot最新教程IDEA版通俗易懂_哔哩哔哩_bilibili

一、剖析pom.xml文件

1.spring-boot-dependencies 核心依赖

打开springboot的配置文件pom.xml(maven项目的核心配置文件),通过深入其父项目,可以查看其调用关系。

通过两层的深入后,就到底了。最底层的是spring-boot-dependencies项目,它也在我们的本地仓库里。

 spring-boot-dependencies有两大作用:

(1)存放springboot项目的核心依赖。并且都写好了依赖的版本号。

(2)我们导入springboot项目依赖时候不需要指定版本,就因为有这些版本仓库。

2. 启动器

<dependencies>
        <!-- web的启动器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- test的启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

(1)启动器就是springboot的启动场景。springboot会将一个个的启动场景都变成一个个的启动器。

(2)比如spring-boot-starter-web,他就会帮我们导入web场景所需要的所有依赖。

(3)我们要使用什么功能,只需要找到对应的启动器starter就行了。官网中给出了所有的starter.

Developing with Spring Boot

 二、主程序

我们通过主程序来看一下,是怎样对一个项目进行自动装配的。

//@SpringBootApplication 标注这个类是一个springboot的应用
@SpringBootApplication
public class Springboot01Application 

    public static void main(String[] args) 
        //将springboot应用启动
        SpringApplication.run(Springboot01Application.class, args);
    

然后,我们深入@SpringBootApplication这个注解,可以看到这个注解主要由下面这两个注解组成。

 然后我们继续深入这两个注解。

@SpringBootConfiguration :springboot的配置
    @Configuration :spring配置类
        @Component: 最底层是组件,说明springboot的配置也是一个spring的组件
@EnableAutoConfiguration :自动装配
    @AutoConfigurationPackage :自动配置包
        @Import(AutoConfigurationPackages.Registrar.class) :自动配置‘包注册’
    @Import(AutoConfigurationImportSelector.class):自动配置‘导入选择’

再深入

 

结论

(1)springboot所有自动配置都是在启动的时候扫描并加载的

(2)所有的自动配置类都在spring.factories里面。但是里面的类不一定生效,只有导入对应的启动器starter,自动装配就会生效,配置成功!

 原博客的总结:

以上是关于SpringBoot学习笔记—— 自动装配原理的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot学习探究Springboot自动装配

spring boot自动装配原理

SpringBoot简要笔记

SpringBoot自动装配原理

SpringBoot - 自动装配原理

Springboot自动装配的原理