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.
二、主程序
我们通过主程序来看一下,是怎样对一个项目进行自动装配的。
//@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学习笔记—— 自动装配原理的主要内容,如果未能解决你的问题,请参考以下文章