随笔分类 - Spring原理
摘要:摘要: 本文首先将举例说明如何使用BeanWrapper,然后根据例子中的结果分析BeanWrapper的源码。由于在spring中BeanWrapperImpl是BeanWrapper接口的唯一实现类,所以将对BeanWrapperImpl进行源码分析。最后,将从三个方面分析BeanWrapper
阅读全文
摘要:这一讲主要分析bean注册过程中各种初始化方法回调的执行逻辑(initializeBean)
阅读全文
摘要:这一讲分析spring bean属性注入代码populateBean,源码分析如下 debug过程中我们知道,总共有7个BeanPostProcessor 对于@Autowired,@Value注解注入的属性值,AutowiredAnnotationBeanPostProcessor会处理。我们进一
阅读全文
摘要:这一讲我们分析真正的bean实例创建方法——doCreateBean,源码分析如下 步骤如下 1、 createBeanInstance:执行构造方法创建bean实例; 2、 populateBean:丰富bean属性,包括依赖注入的bean和一般属性; 3、 initializeBean:执行be
阅读全文
摘要:我们知道,在spring bean生命周期中,我们可以在不同阶段执行处理器或者方法,比如init-method,destroy方法,BeanPostProcessor接口等。那么这些处理器或方法的执行顺序是怎样的,让我们用实际例子来观察。 执行结果 可以看出来,spring bean加载顺序如下 1
阅读全文
摘要:上一讲我们谈到单例生产关键方法getSingleton。getSingleton方法由DefaultSingletonBeanRegistry类实现。我们的抽象工厂AbstractBeanFactory继承了FactoryBeanRegistrySupport,而FactoryBeanRegistr
阅读全文
摘要:我们先看AbstractBeanFactory.getBean方法,这个方法通过bean名称类型等信息获取类实例,如果实例不存在则生产并缓存。 关键方法doGetBean解读如下 关键代码getSingleton下一讲继续研究。
阅读全文
摘要:Spring通过配置文件或者注解对类实例进行加载管理。稍微思考,可以猜测spring加载过程肯定先把配置转化为统一的配置对象,再把通过配置对象生产类实例。阅读源码,我们也可以发现这个逻辑。 spring配置对象类结构 spring实例生产工厂类结构 spring bean生产简单例子 例子中我们简单
阅读全文

浙公网安备 33010602011771号