【Spring源码】Spring流程

2023-10-27

1、初始化AnnotationBeanDefinitionReader

2、初始化ClassPathBeanDefinitionScanner

3、执行register(),注册配置类

4、执行refresh(),先初始化比如BeanFactory这类基础的容器

5、执行invokeBeanFactoryPostProcessors(),主要扫描包和parse (类—>beanDefinition)

6、注册beanPostProcessor,国际化等等

7、将BD变成bean的方法 finishBeanFactoryInitialization(),实例化非延迟的单例

8、首先getBeanDefinition之前,都要合并bd

9、getSingleton第一次——单例池中是否存在单例,并且判断是否在“正在创建bean的set集合”中

10、getSingleton第二次

11、BPP1——是否需要代理bean,代理则直接返回

12、BPP2——推断构造函数

13、BPP3——缓存注入元素的信息

14、BPP4——生产代理工厂,作用是解决循环依赖

15、调用populateBean 主要作用,注入属性

16、BPP5——控制是否需要属性注入

17、再注入缓存的属性之前,先通过 自动注入模型

18、BPP6——注解的属性填充 @Autowired @Resource

19、BPP7——各种aware接口 + 生命周期回调 执行@PostConstruct

20、执行 实现InitializingBean接口的,重写方法,和 xml 中的 init-method="xxx"方法

21、BPP8——aop代理

BD:BeanDefinition

BPP:BeanPostProcessor

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

【Spring源码】Spring流程 的相关文章

随机推荐

  • qt TCP接收数据遇到的问题

    项目负责利用TCP来传输一组大的数据 然后在接收函数里将接收的数组进行解包赋值 从结果来看发现解包出来的数据都是错误的 几乎都是随机并且好几个值是负无穷 这里就发现了QT的TCP传输机制 它将我的数据分两次接收 每一次是原来的一半 例如我传
  • 98. Validate Binary Search Tree 解题记录

    题目描述 Given a binary tree determine if it is a valid binary search tree BST Assume a BST is defined as follows The left s
  • 基于 session 和基于 token 的用户认证方式到底该如何选择

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 现在貌似大多数网站用户认证都是基于 session 的 即在服务端生成用户相关的 session 数据 而发给客户端 sesssion id 存放到 cookie 中 这样
  • beyond compare使用

    灰色 在自己定义的比较标准下比较 完全相同 红色 在自己定义的比较标准下比较 不相同 蓝色 在自己定义的比较标准下 蓝色的文件为多出来的文件 2012 10 15
  • 微信小程序quickstartFunctions中云函数的应用

    1 在quickstartFunctions文件中新建文件夹和文件 2 index js 文件书写 const cloud require wx server sdk cloud init env cloud DYNAMIC CURRENT
  • dbeaver导出建表语句_常用SQL语句(时常修改)

    咱们在开发中有很多的sql 是不好写的 写完了 还总容易出问题 所以从现在开始总结 这些SQL语句 2019 01 09更新 这个问题是因为做设计的时候忘了数据的唯一的问题 导致数据出现重复 查询的时候出现了查询的selectOne变成se
  • Sencha的Eclipse插件提示和技巧

    原文 http www sencha com blog sencha eclipse plugin tips tricks Sencha的Eclipse插件是一个完整的用于流行的Eclipse IDE的代码辅助和验证插件 有了该插件 就可以
  • lol数据英雄联盟接口LOL接口电竞api开发比分网分享@

    英雄联盟数据LOL接口电竞api开发比分网分享 TOC 数据来自marz数据alan marzesport com 各大赛区的lol数据都有 1 获取赛事 接口 host1 api series 9870 示例 赛事相关接口 begin a
  • Vmware虚拟机网络模式原理及配置详解

    概述 VMware为我们提供了三种网络工作模式 它们分别是 bridged 桥接模式 host only 仅主机模式 nat 网络地址转换模式 打开VMware Workstation 我们可以在选项栏的 编辑 下的 虚拟网络编辑器 中看到
  • 915. 分割数组-动态规划算法

    915 分割数组 动态规划算法 给定一个数组 nums 将其划分为两个连续子数组 left 和 right 使得 left 中的每个元素都小于或等于 right 中的每个元素 left 和 right 都是非空的 left 的长度要尽可能小
  • 跨境做独立站,如何低成本引流?你的流量密码在这

    大家都知道 海外的消费习惯与国内不同 独立站一向是海外消费者的最喜欢的购物方式之一 这也吸引了许多跨境商家开设独立站 独立站不同于其他的第三方平台 其他平台可以靠平台自身流量来获得转化 而独立站本身没有流量 需要卖家从各大社媒平台进行自主引
  • 史上最牛独立开发者:花20美元狂赚100万美元

    Joe Kaufman 是一个名副其实的独立开发者 只有一个同伴 他一人处理所有的设计 美术 动画 尽管如此 他的游戏还是获得了巨大成功 Grisly Manor 恐怖庄园的秘密 的下载量已达400万 Lost City 失落之城 的也已经
  • 如何统计Visual Studio Code项目的代码行数

    背景 年底到了 公司一年一度做述职报告的时间又到了 每到此时小伙伴们都想方设法的去做一些代码层面的汇总 在此交给大家个小妙招 走过路过不要错过哈 解决方案 使用Visual Studio Code自带的在文件中查找功能中的正则表达式实现代码
  • Android新手入门 FAQ

    Q 什么是Android A Android一词的本义指 机器人 同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称 该平台由操作系统 中间件 用户界面和应用软件组成 号称是首个为移动终端打造的真正开
  • Openstack Qos

    Openstack network qos 1 配置QOS 此处网络为provider网络 无self server网络 无L3 只有控制节点和计算节点 控制节点上 vim etc neutron neutron conf service
  • 立体匹配 -- PSM-Net 网络模型代码剖析

    只熟悉流程跑通代码不重要 重要的是理解网络的思想 GC Net提出了3D CNN编解码的形式做 cost volum 后处理的过程 PSM Net 加入图像金字塔的模块结合3D CNN 输出图像视差图 一 特征提取模块 作者用 3层 33的
  • 2023华为OD机试真题【组装数组】

    题目描述 给你一个整数M和数组N N中的元素为连续整数 要求根据N中的元素组装成新的数组R 组装规则 1 R中元素总和加起来等于M 2 R中的元素可以从N中重复选取 3 R中的元素最多只能有1个不在N中 且比N中的数字都要小 不能为负数 输
  • SpringBoot实现原理

    一 什么是SpringBoot SpringBoot是一个快速开发框架 快速的将一些常用的第三方依赖整合 原理 通过Maven子父工程的方式 简化XML配置 全部采用注解形式 内置Http服务器 Jetty和Tomcat 最终以java应用
  • 二叉树实现按层 s型打印

    题目阐释 s型打印 重要的是将binary tree 逐层遍历 获取每层的node 思路 将树的遍历转化为 压栈出栈 每次将列表内的node全部出栈 获取子元素 然后全部再入栈 如此反复迭代 应用 当树有层次信息时候 可以如此操作 代码如下
  • 【Spring源码】Spring流程

    1 初始化AnnotationBeanDefinitionReader 2 初始化ClassPathBeanDefinitionScanner 3 执行register 注册配置类 4 执行refresh 先初始化比如BeanFactory