- 博客(10)
- 资源 (2)
- 收藏
- 关注
原创 10_finishBeanFactoryInitialization
finishBeanFactoryInitialization 的作用就是初始化剩余的所有单实例bean。除了一些需要提前初始化的类。比如前面实现了BeanDefinitionRegistryPostProcessor(在invokeBeanFactoryPostProcessors方法的时候)。通过beanFactory.getBean提前获取的。最后的都是在该方法中完成创建。 pr...
2019-08-26 17:19:48 177
原创 9_registerBeanPostProcessors
进入PostProcessorRegistrationDelegate的registerBeanPostProcessors其实这里边主要做的逻辑就是获取所有的处理器,然后根据是否实现PriorityOrdered,Ordered接口进行排序后依次加入到beanFactory的beanPostProcessors属性中。后面使用可以快速取出。再加入的时候有个小细节需要注意if (beanP...
2019-08-23 09:23:15 130
原创 8_invokeBeanFactoryPostProcessors
PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(beanFactory, getBeanFactoryPostProcessors());进入到对应的方法中 public static void invokeBeanFactoryPostProcessors( ...
2019-08-22 16:44:12 122
原创 7_invokeBeanFactoryPostProcessors方法讲解前的一些描述
invokeBeanFactoryPostProcessors方法是一个很好的扩展点。在需要进行统一组件扫描的情境下,通过实现BeanDefinitionRegistryPostProcessor该接口,复写其中的postProcessBeanDefinitionRegistry方法,可以很方便的去做响应的逻辑处理,如dubbo的service扫描。以及mybatis的Mapper 扫描。dubb...
2019-08-22 14:32:57 289
原创 6_prepareBeanFactory方法分析
前面已经分析了refresh函数中的obtainFreshBeanFactory方法,在该方法中,如果是通过ClassPathXmlApplication的话,会在这里边进行beanFactory的创建以及xml中的bean的解析与注册。下面继续分析prepareBeanFactory方法.主要是对beanFactory进行相关的参数设置,包括classLoader,expressionResol...
2019-08-22 13:35:21 219
原创 5_注解注册bean
在spring中如果想通过扫描注解的方式注册bean的话,可以通过在xml配置如下代码 <context:component-scan base-package="com.test.xml"/> 那么我们来分析一下componet-scan标签做了什么动作。按照我们之前的知识可以发现这个标签不属于默认标签的声明空间。所以会调用parseCustomer进行自定义标...
2019-08-22 11:18:06 144
原创 4_自定义标签的解析
先进性一个简单的自定义标签的例子首先在META-INF下创建文件spring.handlers(名字和路径固定)在其中添加 http\://www.test.com/schema/tags/urlMap=com.test.common.security.sdk.spring.handler.UrlMapNamespaceSupport 这一步是为了向s...
2019-08-22 09:10:38 234
原创 3_默认标签解析
private void parseDefaultElement(Element ele, BeanDefinitionParserDelegate delegate) { //import标签 if (delegate.nodeNameEquals(ele, IMPORT_ELEMENT)) { ...
2019-08-21 17:42:37 123
原创 2_XML形式bean的解析
在Spring中,注册一个bean分为两个方式,一个是通过注解扫描的方式,一个是通过xml的方式。下面我们就针对Spring的xml方式注册解析bean的过程进行分析通过跟踪代码进入AbstractApplicationContext类refresh方法在refresh方法中调用了obtainFreshBeanFactory();上篇文章提到过该类。该类是用来获取对应的beanFactor...
2019-08-21 16:52:30 213
原创 Spring源码分析(一)
在进行spring调用获取bean的时候,我们经常通过如下方式获取到一个对应的bean ApplicationContext applicationnContext = new ClassPathXmlApplicationContext("context.xml"); String []beanNames =((ClassPathXmlApplicationContext) a...
2019-08-21 14:42:24 372
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人