兰州网站建设怎么选,山东一级造价师考试时间,做公司网站的公司,logo参考网站【1】从 spring.factories 配置文件中加载 EnableAutoConfiguration 自动配置类#xff09;,获取的自动配 置类如图所示。 【2】若 EnableAutoConfiguration 等注解标有要 exclude 的自动配置类#xff0c;那么再将这个自动配置类 排除掉#xff1b; 【3】排除掉要 exclude … 【1】从 spring.factories 配置文件中加载 EnableAutoConfiguration 自动配置类,获取的自动配 置类如图所示。 【2】若 EnableAutoConfiguration 等注解标有要 exclude 的自动配置类那么再将这个自动配置类 排除掉 【3】排除掉要 exclude 的自动配置类后然后再调用 filter 方法进行进一步的过滤再次排除一些 不符合条件的自动配置类 【4】经过重重过滤后此时再触发 AutoConfigurationImportEvent 事件告诉 ConditionEvaluationReport 条件评估报告器对象来记录符合条件的自动配置类 【5】 最后再将符合条件的自动配置类返回。
AutoConfigurationImportSelector 的 filter 方法主要做的事情就是调用 AutoConfigurationImportFilter 接口的 match 方法来判断每一个自动配置类上的条件注解若有 的话 ConditionalOnClass , ConditionalOnBean 或 ConditionalOnWebApplication 是否满足 条件若满足则返回true说明匹配若不满足则返回false说明不匹配。 我们再总结下SpringBoot自动配置的原理主要做了以下事情
1. 从spring.factories配置文件中加载自动配置类 2. 加载的自动配置类中排除掉 EnableAutoConfiguration 注解的 exclude 属性指定的自动配置 类 3. 然后再用 AutoConfigurationImportFilter 接口去过滤自动配置类是否符合其标注注解若有 标注的话 ConditionalOnClass , ConditionalOnBean 和 ConditionalOnWebApplication 的条件若都符合的话则返回匹配结果 4. 然后触发 AutoConfigurationImportEvent 事件告诉 ConditionEvaluationReport 条件评 估报告器对象来分别记录符合条件和 exclude 的自动配置类。 5. 最后spring再将最后筛选后的自动配置类导入IOC容器中 GPT回答 Spring Boot的自动配置是通过条件化配置Conditional Configuration和约定优于配置Convention over Configuration的原则来实现的。 条件化配置Spring Boot会根据当前应用的环境和类路径上的依赖判断是否需要自动配置某个组件。它会通过条件注解如ConditionalOnClass、ConditionalOnBean、ConditionalOnProperty等来定义条件只有在满足条件的情况下才会进行自动配置。 约定优于配置Spring Boot根据一些约定来进行自动配置而不需要显式的配置。它会根据类路径上的依赖、配置文件、注解等信息自动推断和加载合适的配置。比如如果在类路径上存在HikariCP依赖Spring Boot会自动配置HikariCP作为默认的数据库连接池。
在自动配置过程中Spring Boot会扫描应用程序的类路径上的META-INF/spring.factories文件该文件中定义了各个自动配置类的全限定名。Spring Boot会根据这些配置类来进行自动配置。
自动配置类通常使用Configuration注解进行标注并且使用各种注解如Bean、EnableConfigurationProperties等来进行具体的配置。这些自动配置类会根据条件判断来决定是否进行自动配置。
另外Spring Boot还提供了ConfigurationProperties注解用于将配置文件中的属性值绑定到对应的Java对象上。通过ConfigurationProperties注解我们可以方便地自定义配置并在自动配置过程中使用。
总之Spring Boot的自动配置通过条件化配置和约定优于配置的原则根据应用的环境、依赖和配置文件等信息自动加载和配置相应的组件以简化开发者的配置工作。