目 录CONTENT

文章目录

SpringBoot自动装配原理是什么?

Administrator
2024-11-29 / 0 评论 / 0 点赞 / 7 阅读 / 0 字
温馨提示:
本文最后更新于2024-11-29,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

什么是自动装配?

SpringBoot 的自动装配原理是基于Spring Framework的条件化配置和@EnableAutoConfiquration注解实现的。这种机制允许开发者在项目中引入相关的依赖,SpringBoot 将根据这些依赖自动配置应用程序的上下文和功能。

SpringBoot 定义了一套接口规范,这套规范规定:SpringBoot 在启动时会扫描外部引用jar 包中的METAINF/spring.factories文件,将文件中配置的类型信息加载到 Spring 容器(此处涉及到 JM 类加载机制与Spring 的容器知识),并执行类中定义的各种操作。对于外部jar 来说,!只需要按照 SpringBoot 定义的标准,就能将自己的功能装置进 SpringBoot。

通俗来讲,自动装配就是通过注解或一些简单的配置就可以在SpringBoot的帮助下开启和配置各种功能比如数据库访问、Web开发。

SpringBoot自动装配原理

Spring Boot 启动类上都有一个 @SpringBootApplication注解,@SpringBootApplication 里面有 @EnableAutoConfiguration 的注解:

自动配置主要由@EnableAutoConfiguration实现,添加了@EnableAutoConfiguration注解,会导入AutoConfigurationImportSelector类,里面的selectImports方法通过SpringFactoriesLoader.loadFactoryNames()扫描所有含有META-INF/spring.factoriesjar包,将对应key@EnableAutoConfiguration注解全名对应的value类全部装配到IOC容器中。

不是所有的配置都会装配

  • 扫描类路径: 在应用程序启动时,会扫描类路径上的 META-AutoConfigurationImportSelectorINF/spring.factories 文件,这个文件中包含了各种 Spring 配置和扩展的定义。在这里,它会查找所有实现了Autoconfiguration接口的类,具体的实现为 getcandidateconfigurations 方法。

  • 条件判断: 对于每一个发现的自动配置类, AutoconfigurationImportselector 会使用条件判断机制(通常是通过@ConditionalOnClass 注解或@ConditionalOnMissingBean)来确定是否满足导入条件。这些条件可以是配置属性、类是否存在、 Bean是否存在等等。

  • 根据条件导入自动配置类:满足条件的自动配置类将被导入到应用程序的上下文中。这意味着它们会被实例化并应用于应用程序的配置。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区