为什么ApplicationContext没有从AbstractApplicationContext继承?

时间:2017-01-29 09:10:11

标签: spring

我刚才注意到,在Spring中,registerShutdownHook等方法仅在AbstractApplicationContext中定义,而不是在ApplicationContext中定义。 我检查过,ApplicationContext不是从AbstractApplicationContext继承的,我想知道为什么?

1 个答案:

答案 0 :(得分:0)

registerShudownHookAbstractApplicationContext上定义,这是一个模板方法实现,您只定义功能的某些部分(其余部分用作默认值)。

AbstractApplicationContext是ApplicatoinContext的一个实现,而不是相反,所以你引用的方法不能从声明为ApplicationContext的字段中获取。

此方法实际上来自实现最初定义的ConfigurableApplicationContext

举例说明:

AbstractApplicatoinContext

  ^
  | implements 
  |

ConfigurableApplicationContext(这是定义方法的地方)

  ^
  | extends
  |

AppliationContext