spring扩展之ApplicationContext初始化流程

概述

spring context在大部分java应用中都有使用,其提供了许多扩展接口给在spring平台上进行增强扩展提供了方便。熟悉spring初始化context时各个阶段的流程,对于开发基于spring的框架时会得心应手。本文的application context refresh思维导图大纲,是参照以下来整理的:

org.springframework.context.support.AbstractApplicationContext
org.springframework.context.support.GenericApplicationContext

扩展接口

这里的扩展接口指的是不继承AbstractApplicationContext的前提下,在spring context初始化流程的时候扫描对应的接口bean达到的扩展。常用的扩展接口有:

BeanFactory预处理器

org.springframework.beans.factory.config.BeanFactoryPostProcessor

  • org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor
Bean预处理器

org.springframework.beans.factory.config.BeanPostProcessor

  • org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor
  • org.springframework.beans.factory.config.SmartInstantiationAwareBeanPostProcessor
  • org.springframework.beans.factory.config.DestructionAwareBeanPostProcessor
  • org.springframework.beans.factory.support.MergedBeanDefinitionPostProcessor
应用监听器

org.springframework.context.ApplicationListener
ApplicationEvent对应的的事件可以有:

  • org.springframework.context.event.ApplicationContextEvent
    -- org.springframework.context.event.ContextClosedEvent
    -- org.springframework.context.event.ContextRefreshedEvent
    -- org.springframework.context.event.ContextStartedEvent
    -- org.springframework.context.event.ContextStoppedEvent
  • org.springframework.web.context.support.RequestHandledEvent
    -- org.springframework.web.context.support.ServletRequestHandledEvent
类型转换器

java.beans.PropertyEditor

通常继承java.beans.PropertyEditorSupport重写setAsText和getAsText方法

整体流程结构图

spring context 初始化顺序.png

总结

spring context初始化过程提供了许多接口,为扩展框架、增强功能提供了方便。本篇文章主要是对一些常用扩展点进行概要介绍,详细介绍、使用帮助、应用场景请浏览后续某个扩展点的专题文章介绍。

你可能感兴趣的:(spring扩展之ApplicationContext初始化流程)