随笔分类 - Spring
摘要:Spring IOC Bean对象的创建总结 根据前面的介绍,可以进行Spring IOC容器创建Bean的总结: 调用构造函数启动,调用过程中父类会忽略调用三个Aware接口,BeanNameAware,BeanClassloaderAware,BeanFactoryAware。 环境准备,Env
阅读全文
摘要:知识回顾 Bean的创建过程会经历getBean,doGetBean,createBean,doCreateBean,然后Bean的创建又会经历实例化,属性填充,初始化。 在实例化createInstance时大致可以分为三种方式进行实例化: 使用Supplier 进行实例化,通过BeanFacto
阅读全文
摘要:知识回顾 上一篇介绍了Spring中三级缓存的singletonObjects、earlySingletonObjects、singletonFactories,Spring在处理循环依赖时在实例化后属性填充前将一个lambda表达式放在了三级缓存中,后续在获取时进行了判断,如果不需要进行对象代理,
阅读全文
摘要:知识回顾 解析完Bean信息的合并,可以知道Spring在实例化Bean之后,属性填充前,对Bean进行了Bean的合并操作,这里的操作主要做了对Bean对象标记了@Autowired、@Value、@Resource、@PostConstruct、@PreDestroy注解的字段或者方法进行解析,
阅读全文
摘要:到目前为止,我们知道Spring创建Bean对象有5中方法,分别是: 使用FactoryBean的getObject方法创建 使用BeanPostProcessor的子接口InstantiationAwareBeanPostProcessor的postProcessBeforeInstantiati
阅读全文
摘要:Spring Bean的创建过程非常的复杂,上一篇重点介绍了Spring在创建Bean的过程中,使用InstantiationBeanPostProcessor进行提前创建Bean,我们可以通过CGLIB创建对象对Bean的方法进行增强,当然也可以进行其他方式的创建方式。通过提前创建Bean,减少了
阅读全文
摘要:继续上一篇Spring Bean的创建过程的解读,上一篇介绍了Spring在创建过程中doGetBean方法,在执行过程中会调用getSingleton方法并且设置一个lambda表达式,这个lambda表达式是ObjectFactory的实现,当调用这个接口的getObject方法时就会执行到cr
阅读全文
摘要:Spring Bean 的创建过程介绍了FactoryBean 的创建方式,那么接下来介绍不是FactoryBean的创建方式,在创建过程中,又会分为单例的Bean的创建,原型类型的Bean的创建等。一般来说在Spring中几乎所有对象都是单例创建的,除非有其他业务需要设置为其他作用域的Bean,所
阅读全文
摘要:Spring Bean的创建刚开始进行了一些准备工作,比如转换服务的初始化,占位符解析器的初始化,BeanDefinition元数据的冻结等操作,都是为了在创建Bean的过程中保证Bean的正确的创建,接下来开始进行对Bean的创建进行解析。 Bean 的创建步骤 在Spring源码中对Bean的创
阅读全文
摘要:回顾总结 到目前为止,Spring源码中AbstractApplicationContext#refresh方法的已经解读到第11个方法finishBeanFactoryInitialization,前10个方法介绍了: BeanFactory的准备,创建,刷新,个性化BeanFactory的扩展点
阅读全文
摘要:上一篇文章https://www.cnblogs.com/redwinter/p/16198942.html介绍了Spring的注解的解析过程以及Spring Boot自动装配的原理,大概回顾下:Spring 解析注解是通过BeanFactoryPostProcessor的子接口BeanDefini
阅读全文
摘要:上一篇 https://www.cnblogs.com/redwinter/p/16196359.html 介绍了BeanFactoryPostProcessor的执行过程,这篇文章介绍Spring中配置的注解是如何通过ConfigurationClassPostProcessor解析的,另外分析下
阅读全文
摘要:上一篇文章 https://www.cnblogs.com/redwinter/p/16167214.html 解读了如何进行自定义属性值的编辑器的解析器,并且还介绍了BeanFactory的准备过程中做了哪些事情。这篇文章继续介绍AbstractApplicationContext#refresh
阅读全文
摘要:BeanFactory 使用前的准备 上一篇文章 https://www.cnblogs.com/redwinter/p/16165878.html 介绍了自定义标签的使用,完成了AbstractApplicationContext#refresh 第二个方法 的介绍,本文将继续介绍Spring源码
阅读全文
摘要:Spring 配置文件自定义标签的前置条件 在上一篇文章https://www.cnblogs.com/redwinter/p/16165274.html Spring BeanFactory的创建过程中了解了BeanDefinition的加载和BeanFactory的创建,并且提到了Spring留
阅读全文
摘要:Spring创建 BeanFactory 的方式 按照Bean的配置方式手动创建可以分为两种: 使用XMl配置的Bean 这种方式使用xml配置文件配置Bean的信息并且设置扫描的路径,扫描到的包可以使用注解进行配置Bean信息,一般来说手动创建BeanFactory容器的实现类为ClassPath
阅读全文
摘要:Spring 最重要的方法refresh方法 根据上一篇文章 https://www.cnblogs.com/redwinter/p/16141285.html Spring Bean IOC 的创建流程继续解读Spring源码,本篇文章解读Spring 源码最重要的方法refresh方法。 这个方
阅读全文
摘要:Spring源码解读,Spring IOC 创建Bean的流程
阅读全文