栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Boot 自动装配

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Boot 自动装配

自动装配原理

一个springBoot项目,只要添加相关的依赖,无需配置,启动main方法就行,并且可以对全局变量文件application.properties或application.yml对项目进行设置

springBoot还定义了一套接口规范:Spring Boot在启动时,会扫描jar外部引用jar包中的meta-INF/spring. factories文件,将文件中的配置信息加载到spring容器中,并执行定义中的各项操作

@SpringBootApplication

@SpringBootApplication是核心注解


可以把@SpringBootApplication看作是:
@SpringBootConfiguration、@EnableAutoConfiguration和@Componetscan这三个注解的集合

@SpringBootConfiguration:允许在上下文中注册额外的bean或者导入其他配置项

@EnableAutoConfiguration:启动SpringBoot的自动配置机制

@Componetscan:扫描被@Compent(@Service、@Controller)注解的bean,注解是会默认扫描启动类所在的包下的所有类,也可以定义不扫描bean

@EableAutoConfiguration注解的源码

自动装配的核心是通过AutoConfigurationUmportSelector实现的,查看源码分析:


AutoConfigurationUmportSelector最终实现了importSelector接口,也实现了importSelector接口中的selectimports方法。

selectimport作用:获取所有符合条件的全限定类名,这些类需要被加载到IOC容器中:

getAutoConfigurationEntry:主要负责加载自动配置类

自动装配源码执行流程

源码对应如图:

第一步

跳到isEnabled方法判断自动装配是否开启,默认true

第二步

通过调用SpringFactoriesLoader.loadFactoryName()获取exclude和excludeNama

第三步

获取所需要自动装配的所有配置类,读取meta-INF/spring.factories,经过筛选,满足条件的类会被加载

总结

SpringBoot通过@EnableAutoConfiguration开启自动配置,通过SpringFactoriesLoader最终加载meta-NIF/spring.factories中的自动配置类实现自动装配,自动装配其实就是通过@Conditional按需求加载的配置类,想要其生效就必须引入相应的spring-boot-start-xxxx依赖

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/490223.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号