zoukankan      html  css  js  c++  java
  • SpringBoot自动配置原理分析

    Spring Boot

    Starter

    开箱即用的组件

    自动装配的功能

    Spring Framework > IOC

    applicationContext.xml

    HelloController hc = (HelloController)context.getbean("name")

    Bean 的装配

    --》

    配置文件过多》难以维护

    spring 2.5 注解的支持

    @Services / @Repository / @Controller / ...

    <context:componet-scan

    xml文件依然存在

    spring 3.0 之后 》 javaconfig 》 无配置化

    @Configuration

    手动的方式把Bean装配到IOC容器

    Spring里面本身就提供了这样的支持

    Enable* 自动配置

    自动将Bean装配到IOC容器

    EnableAutoConfiguration 自动装配

    自动装配依赖于spring的javaconfig

    Spring中的Javaconfig

    xml

    context:component-scan/

    JavaConfig

    @ComponetScan 》 扫描@Service @Repository …… 注解修饰的类,装配到IOC容器

    @import

    Spring IOC 容器,如何实现bean的装配

    @Enable

    ImportSelector

    导入 选择 》 选择性导入 》 选择性导入Bean对象

    导入规范

    1. 引入Starter组件,就能实现相关的Bean的自动装配。

    2. (约定优于配置)xxx-spring-boot-starter(非官方) / spring-boot-starter-xxx)(官方提供)

    3. Starter可以自己构建 》 也是为了实现自动装配。

    4. 或者说Starter中必须要基于某种标准定义一个文件或者类,才能够使得Spring Boot 自动装配扫描到对应的文件或者类来实现对应的Starter组件中的Bean的自动装配。

    SPI机制 JDK

    java.jdbc.Driver 》 数据库驱动类(JDK提供的标准)

    SpringFactoriesLoader

    spring里面提供的SPI

    Dubbo

    Spring Boot 官方和个人组织的Starter的区别

    @ConditionalOnClass

    官方提供的Starter相当于一个开关,只需要这个开关满足条件就就会触发装配

    自动装配思想理解图

    原视频观看

  • 相关阅读:
    cmd常用命令
    SqlServer 、MySQL查询库中表明 字段信息
    每科成绩大于80分 查询 删除重复记录
    1
    go语言体系学习(一):环境准备与变量
    PriorityQueue及二叉堆
    LinkedList的几个元素操作方法
    判定字符是否唯一的面试题想到
    python爬虫利器 scrapy和scrapy-redis 详解一 入门demo及内容解析
    mongodb 数据操作CRUD
  • 原文地址:https://www.cnblogs.com/userzf/p/12821376.html
Copyright © 2011-2022 走看看