• SpringBoot自动配置


    启动流程

    我们先来了解SpringBoot的启动流程(简化版)

    SpringApplication.run(..)

            1.创建IOC容器createApplicationContext(..)

            2.加载源配置类loadSourceClass(..)

    原配置类:通常是main方法所在的类,而且会被注解@SpringBootApplication所修饰,我们又称之为主类

            3.加载并处理所有的配置类processConfigurationClasses(..)

                    SpringBoot会自动找到所有的配置类,然后加载和处理他们。“自动装配”就属于其中的一环

            4.实例化所有的单例Bean:instantiateSingletonBeans(..) 

                    实例化所有的单例Bean。“依赖注入”和“自动装配”就属于其中的环节

            5.将这些类注入到Spring IOC容器中

    自动配置:

    1.SpringApplication.run(..)

    2.注册“源配置类”

            加载处理“源配置类”

            处理注解@ComponentScan

            处理注解@Import

                    在类AutoConfigurationImportSelector中加载处理“自动配置类”

                    1.通过SpringFactories机制加载配置文件

                            通过ClassLoader去获取classpath中的配置文件META-INF/spring.factories

                    2.找出所有的自动配置类

                            在所有的配置文件META-INF/spring.factories中,筛选出以EnableAutoConfiguration.class为key的、符合条件的配置类

                    3.根据注解@Conditional过滤掉不必要的自动配置类            

                            注解@Conditional,是来自Spring框架的一个注解

                            它的作用是实现:只有在特定条件满足时,才会向IOC容器注册指定的组件。

                            我们可以将@Conditional理解为某种IF语句     

    注解@Conditional

     @Conditional,是来自Spring框架的一个注解

             它的作用是实现:只有在特定条件满足时,才会向IOC容器注册指定的组件。

              我们可以将@Conditional理解为某种IF语句               

                    完成自动配置

    3.递归加载和处理所有的配置

    注解@ComponentScan是来自Spring框架的一个注解:

            他的作用是对指定的package进行扫描,找到其中符合条件的类,默认是搜索被注解@Component修饰的配置类

            通过属性basePackagesbasePackageClasses,来指定要进行扫描的package

            如果未指定package,则默认扫描当前@ComponentScan所修饰的类所在的package

            

  • 相关阅读:
    105份墨天轮“国产化迁移”精品文档汇总(含TiDB、openGauss、上云等)
    计算机毕业设计之java+javaweb的网上电子书店-图书商城网站
    UDP多播
    wpf webBrowser控件 常用的函数和内存泄漏问题
    洗牌进行时!激光雷达上车背后
    为啥python’hello‘>‘world‘是false
    AutoJs学习-几个QQ群脚本(群引流\提取成员\加群友\加群)
    Socks5代理IP:网络安全的重要组成部分
    Java进阶-常用API
    http基础教程(超详细)
  • 原文地址:https://blog.csdn.net/qq_59102081/article/details/126956015