本文共 642 字,大约阅读时间需要 2 分钟。
ApplicationContextInitializer接口类
方法 void initialize(C applicationContext)
接受一个ConfigurableApplicationContext参数,方法中通常对上下文进行一些配置
实现类:
ContextIdApplicationContextInitializer类:设置 上下文 的id
DelegatingApplicationContextInitializer类:从环境中取出所有的 ApplicationContextInitializer 并执行
ServletContextApplicationContextInitializer类:设置上下文的 servletContext
...
二。SpringBoot中SpringApplication类默认的ApplicationContextInitializer
通过对 # getSpringFactoriesInstances(Class<T> type, Class<?>[] parameterTypes, Object... args) 分析
获取spring.factories 属性文件中的key为ApplicationContextInitializer的类,并实例化,保存到SpringApplication实例中 initializers局部变量中。
在doRun方法中对部分实例进行调用(泛型参数筛选)