SpringBoot中的@EnableAutoConfiguration注解解析
SpringBoot中的@EnableAutoConfiguration注解
借助@Import的支持,收集和注册特定场景相关的bean定义。
@EnableAutoConfiguration也是借助@Import的帮助,将所有符合自动配置条件的bean定义注册到IoC容器,仅此而已!
@EnableAutoConfiguration会根据类路径中的jar依赖为项目进行自动配置,如:添加了spring-boot-starter-web依赖,会自动添加Tomcat和Spring MVC的依赖,Spring Boot会对Tomcat和Spring MVC进行自动配置。
@EnableAutoConfiguration作为一个复合Annotation,其自身定义关键信息如下:
@SuppressWarnings("deprecation")
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(EnableAutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {
...
}最关键的要属@Import(EnableAutoConfigurationImportSelector.class),借助EnableAutoConfigurationImportSelector,@EnableAutoConfiguration可以帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器。
就像一只“八爪鱼”一样,借助于Spring框架原有的一个工具类:SpringFactoriesLoader的支持,@EnableAutoConfiguration可以智能的自动配置功效才得以大功告成!

SpringFactoriesLoader属于Spring框架私有的一种扩展方案,其主要功能就是从指定的配置文件META-INF/spring.factories加载配置。
从classpath中搜寻所有的META-INF/spring.factories配置文件,并将其中org.springframework.boot.autoconfigure.EnableAutoConfiguration对应的配置项通过反射(Java Refletion)实例化为对应的标注了@Configuration的JavaConfig形式的IoC容器配置类,然后汇总为一个并加载到IoC容器。
到此这篇关于SpringBoot中的@EnableAutoConfiguration注解解析的文章就介绍到这了,更多相关@EnableAutoConfiguration注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java使用Lettuce客户端在Redis在主从复制模式下命令执行的操作
这篇文章主要介绍了Java使用Lettuce客户端在Redis在主从复制模式下命令执行的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-04-04
Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结
ShedLock是解决分布式系统中定时任务重复执行问题的Java库,通过在数据库中加锁,确保只有一个节点在指定时间执行任务,它与SpringScheduler、Quartz等框架结合使用,本文介绍Spring Boot 整合 ShedLock 处理定时任务重复执行的问题,感兴趣的朋友一起看看吧2025-02-02
详解在Spring MVC中使用注解的方式校验RequestParams
本篇文章主要介绍了详解在Spring MVC中使用注解的方式校验RequestParams ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。2017-03-03


最新评论