spring
文章平均质量分 64
西瓜个球
这个作者很懒,什么都没留下…
展开
-
createBean
createBean()获取bean对象的class对象prepareMethodOverrides lookup-method replace-methodresolveBeforeInstantitation 给beanPostProcessor一个机会返回当前的bean代理对象(如果包含aop的相关处理,那么会在此处生成advisor对象,方便后续进行调用)doCreateBean 实际创建的方法创建当前bean的包装对象,默认为空BeanWrapper是否为空原创 2021-04-28 22:01:37 · 123 阅读 · 0 评论 -
configurationClassPostProcessor
configurationClassPostProcessor-》BeanDefinitionRegistryPostProcessor->BeanFactoryPostProessorPostProcessBeanDefinitionRegistry()1、processConfigBeanDefinitions(registry)处理配置类的解析信息2、创建一个空的list集合,用来存放beanDefnition3、从容器中获取到所有的BeanDefinitionNames4、是否是符合原创 2021-04-28 09:16:48 · 112 阅读 · 0 评论 -
registerBeanPostProcessor的解析过程
1、registerBeanPostProcessor(BeanFactory)1、在prepareBeanFactory中添加bpp1、applicationContextAwareProcessor2、ApplicationListenerDetectory2、configurationClassPostProcessor1、importAwareBeanPostProcessor2、获取容器中所有实现了BeanPostProcessor接口的子类的名称1、识别到spring中包含的对象和原创 2021-04-28 09:16:06 · 136 阅读 · 0 评论 -
bean的生命周期源码解读
1、ClassPathXmlApplicationContext创建spring以用程序上下文调用构造方法1、调用父类的构造方法 创建PathMathingResourcePatternReslover 解析配置文件2、设置配置文件路径到当前应用程序中3、开始进入容器的创建和刷新环节 refresh();1、prepareRefresh 容器刷新前的准备工作;1、设置容器的启动时间2、设置活跃状态为true;3、设置关闭状态为false4、获取Environment对象,并加载当前系统的原创 2021-04-28 09:15:39 · 290 阅读 · 0 评论 -
finishBeanFactoryInitialization
1、进行对象的创建1、setConversionService设置类型的转换服务2、addEmbeddedValueResolver 设置内置的值处理器3、freezeConfigurations() 冻结BeanDefinition4、preInstantiasteSingletons 开始对象的实例化1、从容其中获取所有的beanDefinitionNames集合2、从集合中获取每一个元素,来进行对象的创建3、根据benaName来获取完整的Bean Definition对象,而且是Roo原创 2021-04-28 09:15:17 · 106 阅读 · 0 评论 -
spring学习2 spring流程创建概述
要想看懂spring源码必须了解一个方法 AbstractApplicationContext的refresh1、prepareRefresh() 容器刷新前的准备工作;1、设置当前spring启动的时间2、设置活跃状态为true;设置关闭状态为false3、获取当前环境对象Environment并设置环境对象的属性值(父类的构造方法内调用子类实现方法)4、设置监听器以及需要发布事件的集合 默认为空集合2、 ConfigurableListableBeanFactory beanFactory原创 2021-04-11 14:50:59 · 95 阅读 · 0 评论 -
spring学习1bean的生命周期相关
springDI 依赖注入iocApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml)XXX xxx = ac.getBean(XXX.class)xxx.method();1、加载xml2、解析xml3、封装bean对象 beanDefinition4、实例化5、放到容器中6、从容器中获取容器->Map1、string ,object2、class,object原创 2021-04-11 11:28:36 · 220 阅读 · 3 评论