Spring Boot自动配置:@EnableAutoConfiguration

本文探讨了Spring Boot自动配置的实现机制,介绍了@EnableAutoConfiguration注解如何开启自动配置,加载spring.factories中的AutoConfiguration。当满足条件时,Spring Boot会实例化配置类中的Bean并注入到Spring容器中。此外,文章还提到了配置文件的位置和作用,以及自动配置类、条件注解和三方组件的相关知识。最后,预告将分析关键源码。
摘要由CSDN通过智能技术生成

Spring boot核心功能即为自动配置,Spring与Spring boot之间区别也在于此,遵循“约定大于配置”的原则,下面来探讨Spring boot自动配置是如何实现的呢?
以下为自动配置的简略流程图:
简略流程配置图

上图通过一句话即可描述:Spring boot通过@EnableAutoConfiguration注解开启自动配置,加载spring.factories中的注册的各种AutoConfiguration,当某个AutoConfiguration类满足@Conditional指定的生效条件(starters提供的依赖、配置或Spring容器中是否存在某Bean等)时,实例化该AutoConfiguration类中定义的Bean(组件等),并注入Spring容器,就可以完成依赖框架的自动配置。

  • @EnableAutoConfiguration该注解由组合注解@SpringBootApplication引入,完成自动配置开启,扫描各个jar包下的spring.factories文件,并加载文件中注册的AutoConfiguration等。
  • spring.factories配置文件,位于jar包的META-INF目录下,按照指定格式注册了自动配置的AutoConfiguration类。spring.factories也可以包含其他类型待注册的类。该配置文件不仅存在于Spring boot项目中,也可以存在于自定义的自动配置(或starter)项目中。
  • AutoConfiguration类为自动配置类,代表了Spring boot中一类以xxAutoConfiguration命名的自动配置类。其中定义了三方组件集成的Spring所需初始化的Bean和条件。
  • @Conditional条件注解及其衍生注解,在AutoConfiguration类上使用,当满足该条件注解时才会实例化AutoConfiguration类。
  • starters三方组件的依赖及配置,Spring boot已经预置的组件。Spring boot默认的starters项目往往只包含了一个pom依赖的项目。

源码分析

@EnableAutoConfiguration

该注解在项目中一般不能被找到,其被组合到@SpringBootApplication注解中,组成该注解的为@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan,也就是说Springboot项目中可以使用这三个注解取代@SpringBootApplication。以下为分析源码:

@Target({
   ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值