了解自动配置的实现原理

了解自动配置

自动配置

  • 基于添加的 JAR 依赖自动对 Spring Boot 应用程序进行配置
    基于我们classpath中出现的类 或者 是application.properties 或者是环境上下文当中的配置,能够通过这些东西为依据,来为我的springboot应用程序来做配置的动作,这个配置是自动的
  • spring-boot-autoconfiguration(springboot中自动配置的代码)

开启自动配置

  • @EnableAutoConfiguration (开启配置注解 通过exclude 属性 去排除掉某个配置类)
    • exclude = Class<?>[]
  • @SpringBootApplication (这个注解中包含@EnableAutoConfiguration )
    在这里插入图片描述

自动配置的实现原理

@EnableAutoConfiguration (import了一个AutoConfigurationImportSelector)

  • AutoConfigurationImportSelector(在这个里面 它会去加载spring.factories 中的一个特定属性autoconfigure.EnableAutoConfiguration )
  • META-INF/spring.factories
    • org.springframework.boot.autoconfigure.EnableAutoConfiguration
    在这里插入图片描述
    加载自动配置加载自动配置
    进入该方法
    在这里插入图片描述
    通过getSpringFactoriesLoaderFactoryClass去加载配置
    在这里插入图片描述
    在spring.factories这个文件中,就有Auto Configure
    在这里插入图片描述

条件注解

  • @Conditional
  • @ConditionalOnClass (当classpath中出现哪个类的时候 条件生效)
  • @ConditionalOnBean (当容器这里存在某个特定bean中如何做)
  • @ConditionalOnMissingBean (当容器这里不存在某个特定bean中如何做)
  • @ConditionalOnProperty (当我的属性配置了特定属性 该怎么做)

  • springboot 通过以上的条件注解完成自动配置的,这些注解都是通过代码实现的

了解自动配置的情况

观察自动配置的判断结果

  • –debug
    在命令行增加–debug这个标准 在应用程序中打印出自动配置的结果
    ConditionEvaluationReportLoggingListener
  • Positive matches
    匹配的自动配置
  • Negative matches
    没有匹配的自动配置
  • Exclusions
    排除掉的自动配置
  • Unconditional classes
    无条件配置的

在AutoconfigureDemoApplication中,打开edit Configurations
在这里插入图片描述
在Program arguments中输入 --debug
在这里插入图片描述

在这里插入图片描述
我们可以在控制台看到 所有的CONDITIONS报告

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值