Spring 中的IOC控制反转 和DI依赖注入

IOC控制反转

ApplicationContext

ClassPathXmlApplicationContext

AnnotationConfigApplicationContext

WebApplicationContext

BeanDefinition

XmlBeanDefinition

AnnotationConfigDefinition

BeanDefinitionReader

XmlBeanDefinitionReader

应该在DI中才用到

BeanWraper

就是配置文件BeanDefinitionMap

DI是从哪里开始?

getBean() 为什么?因为Spring默认是懒加载

实例化,有两种情况

目标类配置了AOP 代理对象

目标类没有配置AOP,原生对象

由这个方法发实例化对象的动作

instantiateBean()

由这个方法发起依赖注入的动作

populateBean()

factoryBeanInstanceCache 用来存储BeanWraper的Map

factoryBeanObjectCache 用来存原生的Bean的Map

BeanDefinationMap 用来存储BeanDefinitionmap 存储配置信息

相关推荐
古法老登瞎折腾7 小时前
大数据智能运维实战(十一):运维 MCP 的工程化——权限、限流、审计与错误处理
java·大数据·运维·spring ai·mcp
智能运维指南8 小时前
研制过程“两张皮“怎么破:研制一体化支撑平台的定位、能力边界与落地前提
java·前端·人工智能·嘉为蓝鲸
小满zs8 小时前
Go语言第十七章(反射)
后端·go
小满zs8 小时前
Go语言第十五章(JSON序列化)
后端·go
小满zs8 小时前
Go语言第十六章(自定义类型)
后端·go
yz_aiks9 小时前
Spring AI 2.1 ChatMemory 已过时用什么替代:迁移到 Session Memory 实战(JDBC 存储与会话压缩)
java·spring boot·大模型·ai agent·spring ai
金銀銅鐵9 小时前
[Java] 用 GUI 展示 EnumMap 增删键值对时的内部变化
java·后端·ai编程
学长毕设9 小时前
基于SpringBoot的上门洗车服务系统设计与实现
java·spring boot·后端
jason成都9 小时前
RTKLIB-Java 多基线联合RTK:FIX率从0%到91.5%的三层根因修复
java·gnss·rtklib·rtklib_java
鱼宵9 小时前
Stream 终端操作一次讲透:collect、count、reduce 怎么选
java·stream·终端操作