spring源码
文章平均质量分 70
满月弓
这个作者很懒,什么都没留下…
展开
-
springAOP简单流程图
原创 2021-06-14 19:43:31 · 289 阅读 · 0 评论 -
getBean方法(三)
上次主要看了doCreateBean方法中的instanceWrapper = createBeanInstance(beanName, mbd, args);这个方法,接下来这样分析的是 doCreateBean方法的接下来的方法. applyMergedBeanDefinitionPostProcessors(mbd, beanType, beanName); //CommonAnnotationBeanPostProcessor支持了@...原创 2021-06-03 22:14:09 · 112 阅读 · 0 评论 -
getBean方法(二)
这次这要分析的是 createBean ()方法中的核心方法docreateBean()方法resolveBeforeInstantiation()这个方法中没有返回bean的实例的话,就走下面的核心方法doCreateBean创建bean,protected Object doCreateBean(String beanName, RootBeanDefinition mbd, @Nullable Object[] args)throws BeanCreationExce...原创 2021-05-30 23:11:55 · 219 阅读 · 0 评论 -
getBean方法(一)
我们先看看这个方法的轮廓流程这个getbean的轮廓方法很长. 先分两种情况: 一种是在缓存实例中能拿到bean, (主要是factroyBean的处理, 执行所有已注册的 BeanPostProcessor 的 postProcessAfterInitialization 方法) 前边是校验 (如果name以“&”为前缀,但是beanInstance不是FactoryBean,则抛异常...原创 2021-05-26 23:04:24 · 827 阅读 · 0 评论 -
finishBeanFactoryInitialization 方法流程总结(一) getBean之前 2021-05-26
这个方法是spring中最重要的方法,功能点1.bean的实例化过程2.ioc3.注解支持4.BeanPostProcessor的执行5.AOP的入口这个方法会把所有的非懒加载的bean的单例bean加载,除了前面学过的两个接口实现类( BeanFactoryPostProcessor接口, BeanPostProcessor接口),还有就是一些内部bean下面是代码流程preInstantiateSingletons方法的核心代码 ...原创 2021-05-26 21:22:27 · 139 阅读 · 0 评论 -
registerBeanPostProcessors(beanFactory) 方法流程总结 2021-05-16
/** 把实现了BeanPostProcessor接口的类实例化,并且加入到BeanFactory中** BeanPostProcessor(后置处理器) 的注册,* 此方法就是把实现 BeanPostProcessor 接口的类,* 提前实例化,这个接口 类里面有两个方法,可以进行相应的操作,* bean 实例化前的操作,以及 bean 实例化后的操作,* 这个实例化在其他正常的 实例化方法之前,* 比如可以阻止其他 bean 的 IOC 依赖注入,* 把实现了 Bea原创 2021-05-16 22:08:01 · 401 阅读 · 0 评论 -
invokeBeanFactoryPostProcessors方法总结 2021-05-16
/** 在 xmlBeanDefinition 解析后,实例化之前,可用此接口完成对 beanDefinition 的动态修改。* BeanDefinitionRegistryPostProcessor 对bean的增删该查的借口* BeanFactoryPostProcessor* 完成对这两个接口的调用** 对上面接口的理解:获取 BeanDefinitionRegistry 对象,* 获取到这个对象就可以获取这个对象中注册的所有 BeanDefinition 对...原创 2021-05-16 21:24:33 · 232 阅读 · 0 评论 -
spring中refresh方法总流程
/** 该方法是spring容器初始化的核心方法。是spring容器初始化的核心流程,是一个典型的父类模板设计模式的运用* 根据不同的上下文对象,会掉到不同的上下文对象子类方法中** 核心上下文子类有:* ClassPathXmlApplicationContext* FileSystemXmlApplicationContext* AnnotationConfigApplicationContext* EmbeddedWebApplicationContext(spring原创 2021-05-16 13:52:56 · 593 阅读 · 0 评论 -
obtainFreshBeanFactory方法总结
这个方法主要有两大作用: 1,创建BeanFactory对象 2,解析xml标签并且封装成BeanDefinition对象 1).对传统标签的解析(bean,import等) 2).对自定义的标签解析如:<context:component-scan base-package="com.xiangxue.jack"/>...原创 2021-05-16 13:10:39 · 262 阅读 · 0 评论