文章分类 - spring源码分析
摘要:首先我们要明确,Spring 在创建一个 bean 实例时,会先创建一个属性值为 null 的实例,然后再进行一个赋值。在上一篇中已经对创建实例的流程进行了一个详细的分析,在这一章中我们继续来看属性注入这一块的内容。 首先,我们先以一个宏观的角度来了解属性注入,我们在 pojo 类中的 set 方法
阅读全文
摘要:不知道各位还记不记得 Spring 对 bean 生命周期的管理方式:Spring 默认采用单例的方式管理 Bean,在获取 Bean 实例的时候会通过一个缓存进行获取,如果还未初始化,那么就会先将 Bean Definition 进行一个初始化放入缓存,然后再通过缓存获取。 那么在上一章中,我也在
阅读全文
摘要:首先我们要明确,Spring 在创建一个 bean 实例时,会先创建一个属性值为 null 的实例,然后再进行一个赋值。在上一篇中已经对创建实例的流程进行了一个详细的分析,在这一章中我们继续来看属性注入这一块的内容。 首先深入 doCreateBean() 方法中的 AbstractAutowire
阅读全文
摘要:在上一章中我有提到过,无论 Spring 采用的是哪种方式去实现 IoC (无论是注解、xml、或者是其他任何一种方式),在真正调用 getBean() 之前容器中都不存在任何一个 Bean 实例。 或许你有疑问,ApplicationContext 这个容器在初始化的同时内部不是已经缓存 Bean
阅读全文
摘要:在上一篇文章中,解析前的准备工作已经分析完毕,接着分析解析 BeanDefinition 的逻辑。 beanDefinitionReader.loadBeanDefinitions(resource); 首先我们进入到 XmlBeanDefinitionReader.loadBeanDefiniti
阅读全文
摘要:在上一篇文章中,我提到了 Spring 在宏观上的 IoC 执行流程,也粗略地拆解了整个流程中的核心组件,这些组件包括了: 资源抽象 - Resource 注册器,也可称之为工厂 - DefaultListableBeanFactory 读取器 - BeanDefinitionReader 那么在这
阅读全文
摘要:当今,SpringBoot、SpringCloud 盛行,而无论怎么发展,背后的根基依然是 Spring 的 IoC 与 Aop,这两个核心是无论如何也不会变化的。 为了加深自己对 Spring 的理解,笔者打算针对 Spring 源码分析,内容涉及到了 IoC、Aop、事务管理,在分析的同时写下自
阅读全文