- 博客(8)
- 收藏
- 关注
原创 Spring源码解析7-(xml)Spring的AOP
配置文件 直接看refresh()中的obtainFreshBeanFactory(),初始化容器,加载配置文件成beanDefinition 直接到DefaultBeanDefinitionDocumentReader的parseBeanDefinitions() 解析标签 直接到ConfigBeanDefinitionParser的parse()方法 注册自动代理模式的创建器AspectjAwareAdvisorAutoProxyCreator ...
2022-04-05 19:17:30
399
原创 Spring源码解析7-bean循环依赖
循环依赖 普通对象的循环依赖 1、先实例化A对象,未初始化,半成品 A@1536 2、将实例化A对象的lambda表达式放入三级缓存 3、A对象填充b属性值,b是一个RuntimeBeanReference 4、从容器中的缓存取B对象,取不到,创建实例化B对象,半成品 B@1937 5、将实例化B对象的lambda表达式放入三级缓存 6、B对象填充a属性值,a也是一个RuntimeBeanReference,尝试从容器的1,2,3缓存中依次取key为a的beanName...
2022-04-05 16:48:40
189
原创 Spring源码解析6-spring的bean创建流程实例化
spring的bean创建流程实例化,通过获取构造器,反射创建bean,分配空间 refresh()中的finishBeanFactoryInitialization(), 完成此上下文bean工厂的初始化,初始化所有剩余的单例bean(非懒加载的) finishBeanFactoryInitialization() 1、为上下文初始化类型转换器,ConversionService有3种转换器实现类,1对1转换,1对N转换,N对N转换 2、beanFactory之前没有...
2022-04-05 15:43:35
472
原创 Spring源码解析5-注册BeanPostProcesser与消息资源和监听器的初始化与注册
refresh()的registerBeanPostProcessors() 实例化并且注册所有的beanPostProcessor处理器,这里只是注册功能,真正调用的是getBean方法 registerBeanPostProcessors() registerBeanPostProcessors() 找到所有实现了BeanPostProcessor接口的类,按实现了PriorityOrdered接口,实现了Ordered接口,spring内部与普通的BeanPost...
2022-04-05 15:38:09
396
原创 Spring源码解析4-spring注解解析过程,ConfigurationClassPostProcessor
注解利用AnnotationConfigApplicationContext 注册加载Spring上下文 构造函数,创建AnnotationConfigApplicationContext实例对象 this()—>AnnotationConfigApplicationContext() AnnotatedBeanDefinitionReader(),创建AnnotatedBeanDefinitionReader对象 创建Annota...
2022-04-05 15:34:55
769
原创 Spring源码解析3-beanFactoryPostProcessor的执行
refresh()中的invokeBeanFactoryPostProcessors(beanFactory) invokeBeanFactoryPostProcessors(),实例化并且调用所有已经注册了的beanFactoryPostProcessor,遵循指明的顺序 PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(),获取到当前应用程序上下文的beanFactoryPostProces..
2022-04-05 13:57:47
612
原创 Spring源码解析2-spring启动(bean工厂预准备)
spring启动,bean工厂准备工作 refresh()中的prepareBeanFactory(beanFactory)方法,beanFactory的准备工作,对各种属性进行填充 prepareBeanFactory() 1,设置beanFactory的classloader为当前context的classloader 2,设置beanfactory的表达式语言处理器 3,为beanFactory增加一个默认的propertyEditor,这个主要是对bean的属性等设..
2022-04-05 13:54:35
196
原创 Spring源码解析1-spring启动(解析配置,注入容器)
spring的ioc容器初始化细节 定位配置文件,解析配置文件成beandefinition,注入ioc容器 配置文件构造方法 setConfigLocations(),设置应用程序上下文的配置路径,资源文件的路径 getEnvironment()获取环境变量 createEnvironment() StandardEnvironment(),创建标准环境 这个StandardEnvironment类是没有构造函数,默认是无参构造,调用父类AbstractEnvironment的无参构造 Ab
2022-04-04 21:35:08
360
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人