自动配置@EnableAutoConfiguration

本文深入探讨了Spring Boot的自动配置机制,重点解析了@EnableAutoConfiguration注解如何借助@Import加载自动配置类。同时,提到了@SpringBootApplication与业务包位置的关系,以及@AutoConfigurationPackage的作用。在项目启动时,spring.factories文件被用于加载配置工厂类,筛选匹配的bean加入到IoC容器中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在spring中有很多Enable开头的注解,作用就是@Import来收集并注册特定的场景相关的bean,并且加入到IOC容器。

@EnableAutoConfiguration就是借助@Import来收集所有符合自动配置条件的bean定义,并加载到IOC容器中。

在这里可能会好奇的是为什么@SpringBootApplication必须跟业务包放在同一级路劲上,这里需要了解的一个注解是:@AutoConfigurationPackage

在Registrar.class类中



再项目启动加载的时候,都会去加载spring.factories,而这个文件再META-INF得目录下,通过这个文件可以加载到存放得相关得配置工厂类,这时候再springboot启动的时候,就会去加载自动配置核心注解@EnableAutoConfiguration, 这时候会去加载process方法后,加载spring.factories中的所有的工厂类,然后进程fiter过滤得到我们pom.xml配置的jar对应的配置工厂类加入到ioc容器中。

@EnableAutoConfiguration是Spring Boot的一个注解,它的作用是启用Spring应用程序上下文中的自动配置机制。在Spring Boot应用中,开发人员可以通过引入不同的starter依赖来快速地构建应用,而@EnableAutoConfiguration注解则可以根据当前应用的依赖和配置情况,自动为应用添加必要的配置。 @EnableAutoConfiguration实现的原理主要涉及到Spring Boot自动配置机制中的以下两个关键组件: 1. Spring Boot的自动配置类 Spring Boot中的自动配置类是通过@Configuration注解来声明的。这些自动配置类包含了应用中可能需要的各种配置,包括数据库连接、事务管理、Web MVC、缓存等。在启动应用时,Spring Boot会扫描应用中的所有类,如果检测到某个自动配置类,则会将其加载到Spring容器中,从而实现自动配置。 2. Spring Boot的条件注解 Spring Boot中的条件注解是通过@Conditional注解实现的。这些条件注解可以根据应用的配置情况,判断是否需要加载某个自动配置类。例如,如果应用中没有配置数据源,则不会加载与数据源相关的自动配置类。 @EnableAutoConfiguration注解的作用就是将Spring Boot自动配置机制中的自动配置类和条件注解结合起来,从而实现自动配置。在启动应用时,Spring Boot会根据当前应用的依赖和配置情况,扫描classpath中的所有类,并根据条件注解来判断是否需要加载某个自动配置类。最终,Spring Boot会将所有需要加载的自动配置类加载到Spring容器中,完成应用的自动配置。 总之,@EnableAutoConfiguration注解的原理是基于Spring Boot自动配置机制中的自动配置类和条件注解,通过扫描应用中的所有类,根据应用的依赖和配置情况,自动为应用添加必要的配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值