Springboot学习-02-原理初探

pom.xml

1.其中存放了大量核心依赖再父工程中

2.我们在写或者引入spring boot的某些依赖的时候,不需要指定版本,就是因为这些版本仓库

启动器

在pom.xml的spring-boot-dependencies中,用以设置启动场景

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>

比如spring-boot-starter-web帮我们自动导入web环境的所有依赖

springboot会把所有的web场景都变成一个个的启动器

我们需要使用什么功能,就只需要找到相应的启动器即可

主程序

package com.example.demo3;

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

//本身就是spring的一个组件
//程序入口
@SpringBootApplication//标注这个类是一个Spring boot的应用
public class Demo3Application {

    public static void main(String[] args) {
        //将spring boot应用启动
        SpringApplication.run(Demo3Application.class, args); } }

注解

@SpringBootConfiguration表示其为springboot的配置类
    @Configuration表示其为一个spring配置类
        @Component表示其本质还是一个spring组件类
@EnableAutoConfiguration自动配置
    @AutoConfigurationPackage自动配置包
        @Import(AutoConfigurationPackages.Registrar.class)自动配置“包注册”
    @Import(AutoConfigurationImportSelector.class)自动配置导入选择

原理初探

脑图整理

结论:springboot的所有自动配置都是在启动的时候被扫描并加载的:spring.factories所有的自动配置都在这里边,但是不一定生效,要判断条件是否成立,只要导入了对应的start,就有对应的启动器了,有了启动器,我们自动装配就会生效,然后就配置成功了。

启动的时候,从路径下/META-INF/spring.factories获取指定的值

将这些自动配置类导入容器,自动配置类就会生效,帮我们进行自动配置

以前我们需要自动配置的东西,现在springboot帮我们做了

整合JavaEE,解决方案和自动配置的东西都在spring-boot-autoconfigure-包下

它会把所有需要导入的组件,以类名的方式返回,这些组件就会被添加到容器

容器中也会存在非常多的xxxAutoConfigure类给容器中导入了这个场景中的所有组件

注解,是自动装配的核心

猜你喜欢

转载自www.cnblogs.com/lovesufang/p/12757605.html
02-