SpringBoot自动配置

SpringBoot自动配置原理

@SpringBootApplication

SpringBoot应用程序能够实现自动配置主要依靠引导类上的一个注解:@SpringBootApplication

package com.lin.missyou;

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

@SpringBootApplication
public class MissyouApplication {
    public static void main(String[] args) {
        SpringApplication.run(MissyouApplication.class, args);
    }
}

在这里插入图片描述
查看@SpringBootApplication的源码可以看出@SpringBootApplication包含了3个主要注解
在这里插入图片描述

@SpringBootConfiguration

@SpringBootConfiguration标注在类上,表示MissyouApplication这个入口文件是一个超级大的配置类。这个超级大的配置类内部会分别去加载一个一个小的配置类和模块。

@EnableAutoConfiguration

@EnableAutoConfiguration是SpringBoot自动配置最核心的注解,表示开启自动配置功能。主要的作用就是加载多个Bean,然后把这些Bean加入到IOC容器。(@EnableAutoConfiguration本质上与@Configuration类似,部分属性要写在配置文件里,允许从配置文件里修改配置Bean下面相关的属性,加载不同的Bean并加入到IOC容器。但是@Configuration是处理我们自己写的类的,@EnableAutoConfiguration是加载一些第三方的SDK、jar包的)

AutoConfigurationImportSelector

@EnableAutoConfiguration中导入(@Import)了一个AutoConfigurationImportSelector。AutoConfigurationImportSelector中有一个非常重要的方法selectImports(),在这个方法中加载第三方配置类。
在这里插入图片描述
在这里插入图片描述
在AutoConfigurationImportSelector的getCandidateConfigurations()方法中,SpringFactoriesLoader.loadFactoryNames()读取所有候选配置类的名字。
在这里插入图片描述

spring.factories

SpringFactoriesLoader中可以找到配置文件的路径:META-INF/spring.factories
在这里插入图片描述
spring.factories这个配置文件中是一个一个的key:value,所有要加载的配置类都是在这个配置文件中记录。
在这里插入图片描述

自动配置的意义

Spring一直围绕着如何更灵活的把Bean加入到IOC容器。SpringBoot比其他框架多了一个IOC容器,SpringBoot自动配置实际上解决了通过读取配置文件把配置的Bean加入到IOC容器,省去了我们手动编写配置注入功能组件的工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三毛村滴雪鱼粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值