Spring容器创建过程】的更多相关文章

Spring容器的refresh()   创建刷新 1  prepareRefresh() 刷新前的预处理 1) initProPertySources() 初始化一些属性设置: 子类定义个性化的属性设置方法 2) getEnvironment( ) .validateRequiredProperties() 检验属性的合法性 3)earlyApplicationEvents = new LinkedHashSet<ApplicationEvent>(); 保存容器中的一些早期的事件 2 ob…
Spring在BeanFactory基础上提供了一些列具体容器的实现,其中AnnotationConfigApplicationContext是一个用来管理注解bean的容器,从AnnotationConfigApplicationContext的实现结构图中可以看出: AnnotationConfigApplicationContext继承GenericApplicationContext这个通用应用上下文,GenericApplicationContext内部定义了一个DefaultList…
在上一篇<Spring--Web应用中的IoC容器创建(WebApplicationContext根应用上下文的创建过程)>中说到了Web应用中的IoC容器创建过程.这一篇主要讲SpringMVC的核心DispatcherServlet. 从web.xml中简要回顾一下WebApplicationContext根应用上下文的创建过程.具体过程详见上篇博客. <!--WebApplicationContext配置参数--> <context-param> <para…
在测试时,经常使用这种方式来创建spring容器 //创建基于注解的springIOC容器 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AopBeanConfig.class); //创建基于配置文件的springIOC容器 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/spr…
51.[源码]-Spring容器创建-容器创建完成 12.finishRefresh();完成BeanFactory的初始化创建工作:IOC容器就创建完成: 1).initLifecycleProcessor();初始化和生命周期有关的后置处理器:LifecycleProcessor 默认从容器中找是否有lifecycleProcessor的组件[LifecycleProcessor]:如果没有new DefaultLifecycleProcessor(); 加入到容器: 写一个Lifecycl…
50.[源码]-Spring容器创建-Bean创建完成 11.finishBeanFactoryInitialization(beanFactory);初始化所有剩下的单实例bean: beanFactory.preInstantiateSingletons();初始化后剩下的单实例bean 1).获取容器中的所有Bean,依次进行初始化和创建对象 2).获取Bean的定义信息:RootBeanDefinition 3).Bean不是抽象的,是单实例的,是懒加载: 1).判断是否是Factory…
49.[源码]-Spring容器创建-创建Bean准备…
48.[源码]-Spring容器创建-初始化事件派发器.监听器等 8.initApplicationEventMulticaster();初始化事件派发器: 获取BeanFactory 从BeanFactory中获取applicationEventMulticaster的ApplicationEventMulticaster: 如果上一步没有配置:创建一个SimpleApplicationEventMulticaster 将创建的ApplicationEventMulticaster添加到Bea…
47.[源码]-Spring容器创建-初始化MessageSource 7.initMessageSource();初始化MessageSource组件(做国际化功能:消息绑定,消息解析): 获取BeanFactory 看容器中是否有id为messageSource的,类型是MessageSource的组件 如果有赋值给messageSource,如果没有自己创建一个DelegatingMessageSource: MessageSource:取出国际化配置文件中的某个key的值:能按照区域信息…
46.[源码]-Spring容器创建-注册BeanPostProcessors 6.registerBeanPostProcessors(beanFactory);注册BeanPostProcessor(Bean的后置处理器)[ intercept bean creation] 不同接口类型的BeanPostProcessor:在Bean创建前后的执行时机是不一样的 BeanPostProcessor. DestructionAwareBeanPostProcessor. Instantiati…