AbstractApplicationContext vs ApplicationContext

AbstractApplicationContextApplicationContext什么区别? 我们可以打电话吗

 context.registerShutdownHook() 

使用ApplicationContext

我在浏览示例代码时看到了这一点 –

 public static void main(String[] args) { AbstractApplicationContext context =new ClassPathXmlApplicationContext("Beans.xml"); context.registerShutdownHook(); } 

与抽象类(AbstractApplicationContext)和接口(ApplicationContext)之间的差异相同。

我们可以使用ApplicationContext调用context.registerShutdownHook()吗?

不,因为registerShutdownHook()ConfigurableApplicationContext接口的一部分,它不是由ApplicationContext扩展的

registerShutdownHook()正常地关闭bean和preforms终结,就像调用destroy方法一样。 这是在ConfigurableApplicationContext接口中声明的方法,它由AbstractApplicationContext实现,并且它不是由ApplicationContext实现的。所以registerShutdownHook()的调用只能从AbstractApplicationContext的对象中实现。

registerShutdownHook()不是ApplicationContext的一部分。 所以,我们不能使用Application上下文。

可以使用ConfigurableApplicationContext或AbstractApplicationContext使用引用来调用此方法。

因为可以从具有实现的接口或类调用方法。 因为,我们实际上使用AbstractApplicationContext的引用为ClassPathXmlApplicationContext创建了对象。

区别:ConfigurableApplicationContext是一个接口,其中的方法在AbstractApplicationContext类中实现。