首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Spring
小王曾是少年
创建于2021-11-03
订阅专栏
Spring
等 5 人订阅
共22篇文章
创建于2021-11-03
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
SpringloC容器的依赖注入源码解析(10)—— populateBean的剩余逻辑
populateBean的前置逻辑文章 完成了按名字或按类型自动装配后,来到脑图里第三步,对解析完但还未设置的属性进行再处理。 这里需要关注AutowiredAnnotationBeanPostPro
SpringloC容器的依赖注入源码解析(9)—— populateBean
站在设计者的角度设计populateBean: 主要实现了下面几个功能 调用Bean的Setter方法实例去给Bean设置上属性值 变量类型的转换,同时还要考虑处理集合类型的情况 配置的时候都是以字符
Spring支持所有循环依赖的情况吗?
循环依赖的情况如下: 构造器循环依赖(singleton,prototype) Setter注入循环依赖(singleton,prototype) 对于prototype来说,Spring是不支持相关
SpringloC容器的依赖注入源码解析(8)—— 单例循环依赖的解决
这一讨论的前提是要对Spring的doCreateBean方法有所了解,故将其源码放在这里,以供参考: 对应的文章《SpringloC容器的依赖注入源码解析(7)—— doCreateBean之剩余逻
SpringloC容器的依赖注入源码解析(7)—— doCreateBean之剩余逻辑(解决循环依赖的源头)
前置文章: doCreateBean之创建无属性的bean doCreateBean之处理@Autowired以及@Value标签 doCreateBean完整源码如下: 接上文分析到的位置,接下来执
SpringloC容器的依赖注入源码解析(6)—— doCreateBean之处理@Autowired以及@Value标签
进入到上面的applyMergedBeanDefinitionPostProcessors方法里: 其中实现了postProcessMergedBeanDefinition方法的一个实现类Merged
SpringloC容器的依赖注入源码解析(5)—— doCreateBean之创建无属性的bean
上一篇文章分析到createBean执行到了doCreateBean方法: 自定义的WelcomeController下面有一个成员变量WelcomeService被@Autowired标签标记 进入
SpringloC容器的依赖注入源码解析(4)—— Bean的创建(createBean)
createBean方法的执行流程如下: 在AbstractBeanFactory的doGetBean的创建bean的方法里打上断点: 多放行几次看到了自定义的bean: step into之后来到A
SpringloC容器的依赖注入源码解析(3)—— doGetBean之剩余逻辑
doGetBean源码: 之前讨论了doGetBean里面从缓存获取bean的代码,doGetBean方法接下来的else处理Bean的scope为prototype或者单例模式但是缓存中还不存在be
SpringloC容器的依赖注入源码解析(2)—— doGetBean之从缓存获取Bean
直接打开AbstractBeanFactory的doGetBean方法: 第一行先将方法传入的name转换成容器真实的beanName,回顾之前,可以通过三种形式获取beanName,一个是原始的be
SpringloC容器的依赖注入源码解析(1)—— Spring的依赖注入概览
Spring在Bean实例的创建过程中做了很多精细化控制 我们需要做的是理清脉络,不要陷入细节 之前有分析到过DefaultListableBeanFactory的preInstantiateSing
SpringIOC容器初始化源码解析(3)—— 事件监听器模式
监听器将监听感兴趣的事件,一旦事件发生,便做出响应,有以下几个概念: 事件源(Event Source) 事件监听器(Event Listener) 事件对象(Event Object) 主要负责
SpringIOC容器初始化源码解析(2)—— Aware及其子接口
从Bean里获取到容器实例并对其进行操作(类名如果是xxxAware,xxx就是可以获取到的) 仅仅是个空的接口,只能当做标签来使用,真正能发挥作用的是继承了这个接口的子接口。 当类需要容器提供帮助的
SpringIOC容器初始化源码解析(1)—— PostProcessor
后置处理器PostProcessor PostProcessor本身也是一种需要注册到容器里的Bean: 其里面的方法会在特定的时机被容器调用 实现不改变容器或者Bean核心逻辑的情况下对Bean进行
SpringIOC源码解析(7)—— xml配置的资源定位、加载、解析、注册全链路分析
调用过程复现: 在DefaultListableBeanFactory的registerBeanDefinition里打上断点,运行Entrance,观察调用栈: 注册是从主函数开始的: 之后进入到F
SpringIOC源码解析(6)—— BeanDefinition的注册
BeanDefinitionRegistry负责对BeanDifinition的注册,其中的方法: 我在Spring专栏的之前的文章中曾经写过,DefaultListableBeanFactory继承
SpringIOC源码解析(5)—— 通过document对象解析出BeanDefinition实例
本文较硬,Spring源码层级关系较多,以致于我本人都需要时不时地回顾,还希望读者能够耐心看完,相信一定能带来收获~ BeanDefinitionReader学习过程中的关键词: location B
SpringIOC源码解析(4)—— Resource、ResourceLoader、容器之间的微妙关系
配置就是xml,spring将对物理资源的访问方式抽象成Resource。 Resource家族 Resource是个接口,继承了InputStreamSource,定义了资源的基本操作(全是读操作)
SpringIOC源码解析(3)—— 高级容器
ApplicationContext家族体系 高级容器均实现了ApplicationContex这个接口,为了区别于普通容器,高级容器一般被称为Contex(上下文),之所以是高级容器,因为它实现了更
SpringIOC源码解析(1)—— Bean与BeanDefinition
全局视角看核心接口和类 解决了关键的问题:将对象之间的关系转而用配置来管理 依赖注入 —— 依赖关系在Spring的loC容器中管理 通过把对象包装在Bean中以达到管理对象和进行额外操作的目的 Be
下一页