当前位置: 首页 > news >正文

Spring源码学习笔记

Spring源码学习笔记

IOC

  • Java 对象

    • new Object()
  • spring bean

    • 是一个 java 对象
    • 经历 spring 生命周期
    • 在 spring 容器
  • Java 对象 创建过程

    • javac Object.java -> Object.class
    • main 启动 JVM
    • 遇到 new 关键字时,JVM 加载 class 文件,创建对象放到堆中
  • Spring Bean 创建过程

    • javac Object.java -> Object.class
    • main 启动 JVM
    • spring 扫描需要创建 bean 的 Object
    • 将 Object 类转换成一个 BeanDifinition 对象
      • org.springframework.beans.factory.config.BeanDefinition 是一个接口
      • 常用的实现类是 GenericBeanDefinition
        • AnnotatedGenericBeanDefinition
        • ScannedGenericBeanDefinition
      • RootBeanDefinition
    • 将其保存在 DefaultListableBeanFactory 的 Map<String, BeanDefinition> beanDefinitionMap
    • 校验 BeanDifinition
    • 检查开发者是否对 spring bean 初始化进行拓展,即实现 BeanFactoryPostProcessor 接口;
    • 若存在拓展,则对某些 BeanDifinition 实例进行一些修改
    • 如果是单例且满足其他一些条件,则在 spring 初始化时利用 java 反射创建对象,放到 单例缓存池中 DefaultSingletonBeanRegistry 的 Map<String, Object> singletonObjects
    • CommonAnnotationBeanPostProcessor 处理器处理 @Resource; AutowiredAnnotationBeanPostProcessor 处理器处理 @Autowired 注解;

相关文章:

  • 正则资料笔记
  • C#接口慨述
  • Inversion of Control 简要笔记
  • 定义接口及定义接口成员
  • 小马哥讲Spring核心编程思想 - 第二章 重新认识IoC
  • 访问接口
  • 记录一次 post 请求的并发测试
  • RPC与 Dubbo 资料梳理
  • 实现接口
  • dubbo 常见用法与配置梳理(一)
  • 接口转换
  • Seata 简要笔记
  • 覆盖虚接口
  • Spring 事务再梳理之 Propagation 基本使用
  • Spring 事务再梳理之 在 SpringBoot 上的小知识
  • Druid 在有赞的实践
  • GitUp, 你不可错过的秀外慧中的git工具
  • java2019面试题北京
  • NSTimer学习笔记
  • orm2 中文文档 3.1 模型属性
  • PHP变量
  • Python语法速览与机器学习开发环境搭建
  • quasar-framework cnodejs社区
  • RxJS: 简单入门
  • Sass Day-01
  • windows-nginx-https-本地配置
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 入口文件开始,分析Vue源码实现
  • 深度解析利用ES6进行Promise封装总结
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 微信小程序填坑清单
  • 源码安装memcached和php memcache扩展
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (剑指Offer)面试题34:丑数
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (三) diretfbrc详解
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (算法)求1到1亿间的质数或素数
  • (原創) 物件導向與老子思想 (OO)
  • (转)德国人的记事本
  • .bat批处理出现中文乱码的情况
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .pop ----remove 删除
  • @ConditionalOnProperty注解使用说明
  • @requestBody写与不写的情况
  • @RequestBody与@ModelAttribute
  • @Transactional 详解