zoukankan      html  css  js  c++  java
  • 【SpringBoot】03 自动装配原理探索

    SpringBoot的依赖探索

    首先是一个父级依赖管理的pom.xml

    【Ctrl + 左键点击】访问进去之后还有父级的父级

    到最后才是我们的真正的顶级父类Pom.xml

    我们当前的父级坐标

    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.2.7.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>

    第二级坐标

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.2.7.RELEASE</version>
        <relativePath>../../spring-boot-dependencies</relativePath>
      </parent>

    最后才是Boot依赖

    顶级父类管理了所有依赖的版本,

    实际导入依赖只需要声明具体的包即可

    次级目录负责了资源导出过滤

    启动器:

    启动被拆分成各个单元模块

    回想SSM的启动

    - Main写类实现

    - Test写单元测试类

    - 服务启动Tomcat

    主程序:

    @SpringBootApplication 标注这个类是一个SpringBoot的应用

    就跟MVC的@Component差不多,注册

    我们可以点击查看这个注解类

    @SpringBootConfiguration

    又是由一个@Configuration来配置

    追到最后就是一个@Component注解,

    也就是说SpringBoot的本质还是一个Spring,

    但是是一个纯注解的Spring【不再是繁琐的XML配置了】

    @EnableAutoConfiguration 顾名思义【开启自动配置】

    @AutoConfigurationPackage

    自动配置包

    被@Import({Registrar.class}) 注解,也就是包注册扫描


    看不下去了,总而言之就是通过这些注解对整个工程进行了一个

    地毯式的注册配置,全部加载进了Properties,配合启动器完成运行

    我们要做的就是配置启动器

    https://www.bilibili.com/video/BV1PE411i7CV?t=2222&p=6

    2020.08.17更新:

    在SpringBoot自动配置这个Jar包中,提供了一个Spring工厂配置文件

    里面的信息就和properties一样,有键和值组成,分为了这些:

    # Initializers 初始化加载器
    
    # Application Listeners 应用监听器
    
    # Auto Configuration Import Listeners 自动配置导入 监听器
    
    # Auto Configuration Import Filters 自动配置导入 过滤器
    
    # Auto Configure 自动配置
    
    # Failure analyzers 故障分析器
    
    # Template availability providers 可用的模版供应者

    重点部分在自动配置的值上面,一共配置了126个值,即表示了SpringBoot具有126个资源的自动配置

    这也就表示其实和Spring读取XML配置信息创建Bean实例是一个道理

    但是加载这些自动配置类资源需要提供SpringBoot对应的启动器starter,自动装配才会生效


    在尚硅谷的教程细谈:

    https://www.bilibili.com/video/BV1gW411W76m?t=190&p=19

    官方文档的配置文件参数详细说名

    https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/htmlsingle/#common-application-properties

    头部导航锚标签连接位置传送

    自动装配原理:

    - SpringBoot启动时加载主配置类,开启了自动配置功能@EnableAutoConfiguration

    - @EnableAutoConiguration作用:

      1、利用EnableAutoConigurationImportSelector给容器导入组件

      2、可以查看SelectImport方法的内容

      3、List<String>Configurations = getCandicateConfiguration(annotationMetaData,attribute)获取候选配置

  • 相关阅读:
    Delphi源程序格式书写规范
    ORACLE常用傻瓜问题1000问
    世界上最健康的作息时间表
    poj1657
    poj1604
    poj1654
    poj1635
    poj1655
    成为一个不折不扣的时间管理专家[推荐]
    男人的十三怕
  • 原文地址:https://www.cnblogs.com/mindzone/p/12849714.html
Copyright © 2011-2022 走看看