springboot自动装配原理

2023-11-19

目录

springboot自动装配详细原理 

自动装配主要依靠三个核心的关键技术:

引入starter 

查找第三方配置类

动态加载


 

个人理解,还有不足的地方需要学习,写这篇帖子目的是为了记录自己的理解

springboot自动装配简单来说是springboot自动的装载第三方组件的Bean 到IOC容器里面,不需要开发人员再去写Bean的配置。

springboot自动装配详细原理 

springboot启动类执行run方法,传入启动类.class参数,在SpringApplication.run执行一系列初始化后通过启动类的.class文件找到上面的注解,其中最重要的是@SpringBootApplication注解        

@SpringBootApplication注解是一个复合注解,@ComponentScan注解是扫描springboot启动类当前所有包下的,其中自动装配最重要的是@EnableAutoConfiguration注解 ,它可以扫描到@Configuration注解

自动装配主要依靠三个核心的关键技术:

引入starter 

启动依赖组件的时候,组件必须包含@Configuration配置类,配置类需要@Bean这个注解去声明需要装配到IOC容器的Bean对象

查找第三方配置类

配置类放到第三方jar包,springboot通过约定大于配置,去把这个配置类的全路径放在classpath:/META-INF/spring.factories文件里面,这样可以知道第三方的配置类的位置,上面步骤通过SpringFactoriesLoader去完成查找第三方jar包的位置。

动态加载

springboot获取第三方jar声明的配置类以后,通过ImportSelector这样一个接口,实现对配置类的动态加载,完成自动装配的动作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springboot自动装配原理 的相关文章

随机推荐

  • Day81-爱心代码音乐版

    项目地址 截止到2023 9月有效 点击跳转 先看效果 素材来自网络 自己加了播放音乐的效果 直接上代码
  • 快速排序算法及其改进算法实现

    快速排序算法不稳定 快速排序算法在大多数的计算机上运行得都比其他排序算法快 而且排序算法消耗资源少 就平均时间而言快排是所有内部排序中最好的一个 对于已经排好的数组 最速排序有最坏时间复杂度为o n 2 当数组长度很小时 快排往往比其他排序
  • 【openGL2021版】链接FBX模型库

    openGL2021版 链接FBX模型库 大家好 我是Lampard猿奋 欢迎来到船新的openGL基础系列的博客 今天主要实现的是链接FBX模型第三方库 一 demo回顾 上周我已经实现了粒子系统 可以看到场景中已经存在着像萤火虫一样的闪
  • Wsl 开发环境配置

    Apt换源 切换清华源 sudo sed i s http archive ubuntu com https mirrors tuna tsinghua edu cn g etc apt sources list sudo sed i s
  • 图文详解 排序算法对比以及能解决的问题

    我们会使用的排序算法 总结源自 极客时间 王争老师 地址 https time geekbang org column intro 126 能看到所有的算法和数据结构的网站 https visualgo net en 这里是关于排序算法的链
  • 六大设计原则--开闭原则

    定义 software entities like classes modules and functions should be open for extension but closed for modifications 一个软件实体
  • php background,CSS BACKGROUND定位背景上下左右偏移

    css中我们经常使用background加载图片作为背景 这个背景图片可以通过具体属性的设置调整其上下左右偏移 调整背景图的上下左右偏移可以通过设置background属性或background position属性来实现 我们以div加背
  • Linux:非root、普通用户安装rpm(fontconfig、fc-cache命令)、中文字体

    前提 非root帐号 普通帐号 不能使用yum rpm命令 没root权限 安装fontconfig 测试是否安装 安装字体后需要使用fontconfig包的fc cache fv命令刷新字体缓存 可以使用下面命令测试 二选一就行 fc l
  • java版kafka producer实现

    需求 1 kafka server已经配置完全 且设定了访问限制 基于这一点 必须要设定认证 及预先分配的账号密码 2 由于项目开发环境是java 且不允许使用LogStash 基于这一点 必须实现一个java版的producer 先贴一份
  • error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

    原因是你两个类的头文件互相包含了 这样是有问题的 参考博客 error C4430 缺少类型说明符 假定为 int 注意 C 不支持默认 int 很多不懂呀 博客园
  • CountDownLatch、CyclicBarrier、Semaphore源码解析

    1 CountDownLatch 计数器 CountDownLatch CountDownLatch 类位于java util concurrent包下 利用它可以实现类似计数器的功能 比如有一个任务A 它要等待其他4个任务执行完毕之后才能
  • Spring Boot + Vue + Shiro 实现前后端分离

    前后端分离思想 前端只利用 Json 来和后端进行交互 后端不返回页面 只返回 Json 数据 前后端之间完全通过 public API 约定 Springboot 就不再赘述了 Controller 层返回 Json 数据 Request
  • Matlab - Solidworks 机器人建模(1)—— 浅谈Matlab机器人建模思路

    本文的讨论对象仅局限于刚体模型 Matlab建立机器人模型主要有两个方面 当然不排除有其他的 我只说我知道的 Rigidbody tree 坐标系模型 Simsacpe 物理模型 建立rigidbody tree模型主要是为了能够使用mat
  • 2017 ICM/MCM D题 Optimizing the Passenger Throughput at an Airport Security Check

    问题描述 参考链接 问题描述 在机场安全检查站优化乘客吞吐量 继2001年9月11日美国发生恐怖袭击事件后 全世界的机场安全状况得到显着改善 机场有安全检查站 在那里 乘客及其行李被检查爆炸物和其他危险物品 这些安全措施的目的是防止乘客劫持
  • 七层模型和五层模型

    高可用 负载均衡 高可用 不要因为技术而技术 七层模型 OSI开放式系统互联通信参考模型 OSI将计算机网络体系结构 architecture 划分为以下七层 物理层 将数据转换为可通过物理介质传送的电子信号 相当于邮局中的搬运工人 数据链
  • Linux系统制作Ubuntu18.04启动盘

    转自 https blog csdn net xiaoma 2018 article details 85059930 首先进入 Ubuntu 官网下载 Ubuntu18 04 ios 镜像包 下载的镜像包为 ubuntu 18 04 1
  • Redis视野打开篇

    1 String格式 一般存一个对象 是用这个对象的ID为键 将对象的所有属性格式化为json对象字符串 作为值 然后set ID json 进去 但是这种方式 在只需要修改这个对象中的其中一个属性时 就需要把json转为对象 改变值 然后
  • stm32定时器输入捕获配置步骤及实例笔记

    输入捕获的一般配置步骤 初始化定时器和通道对应IO的时钟 初始化IO口 模式为输入 GPIO Init GPIO InitStructure GPIO Mode GPIO Mode IPD 初始化定时器ARR PSC TIM TimeBas
  • 基于PID控制参数法改变PWM的占空比的STM32F4温控实例

    最近的工程要用到PID算法 在这里与大家分享一下 本文章适合直接上手PID 直接将PID与STM32结合运用起来 比较适合没有接触过PID的新人或者是算法与STM32结合不熟悉的新同学 如果要详细了解PID算法与调整算法还是需要深入了解一下
  • springboot自动装配原理

    目录 springboot自动装配详细原理 自动装配主要依靠三个核心的关键技术 引入starter 查找第三方配置类 动态加载 个人理解 还有不足的地方需要学习 写这篇帖子目的是为了记录自己的理解 springboot自动装配简单来说是sp