SpringBoot自动装配原理(通俗易懂)如果你熟练使用SpringBoot,那么掌握自动装配原理是必不可少的。1、什么是SpringBoot自动组装?从META-INF/spring.factories文件中获取对应需要自动组装的类,生成对应的Bean对象,然后交给Spring容器管理。2.启动类注解流程关系分析@SpringBootApplicationpublicclassEntryApplication{publicstaticvoidmain(String[]args){SpringApplication.run(EntryApplication.class,args);}}1。先展示@SpringBootConfiguration注解流程图图TDA["@SpringBootApplication"]A-->B["@SpringBootConfiguration"]A-->C["@EnableAutoConfiguration"]A-->D["@ComponentScan"]C-->E["@AutoConfigurationPackage"]C-->F["@Import(AutoConfigurationImportSelector.class)"]E-->G["@Import(AutoConfigurationPackages.Registrar.class)"]2。代码块显示@SpringBootConfiguration注解流程启动类的@SpringBootAppliation注解是组合注解,由以下三个注解组成@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters={@Filter(type=FilterType.CUSTOM,classes=TypeExcludeFilter.class),@Filter(type=FilterType.CUSTOM,classes=AutoConfigurationExcludeFilter.class)})public@interfaceSpringBootApplication{@EnableAutoConfiguration注解分为以下两个注解@AutoConfigurationPackage@Import(AutoConfigurationPackages.Registrar.class)//将一个组件导入到容器中public@interfaceAutoConfigurationPackage{}//使用Registrar将一系列组件导入到容器中@AutoConfigurationPackage注解由以下注解组成@Import(AutoConfigurationPackages.Registrar.class)public@interface自动配置包{3.注解含义@SpringBootConfiguration:标注在一个类上,表示这是一个SpringBoot配置类;@ComponentScan:配置以注解格式定义的加载bean的扫描路径@EnableAutoConfiguration:开启自动组装功能@AutoConfigurationPackage$\color{#F0F}{指定默认包规则}$是扫描主程序所在的包类所在,并将所有分包下的组件放入Spring容器中;@Import(AutoConfigurationImportSelector.class):通过@Import注解导入AutoConfigurationImportSelector类,然后使用该类的$\color{#F0F}{selectImports}$方法读取MATE中配置的组件的完整类名-INF/spring.factories文件,根据一定的规则过滤掉不符合要求的组件的全类名类名,将剩余读取的组件的全类名集合返回给IOC容器,将这些组件注册为豆三。详细介绍简介1.@AutoConfigurationPackage默认包规则详解2.自动配置@Import(AutoConfigurationImportSelector.class)详解1.使用getAutoConfigurationEntry(annotationMetadata);批量导入一些组件到容器中2.调用List
