AbstractApplicationContext vs ApplicationContext

时间:2012-08-07 18:22:38

标签: java spring

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

context.registerShutdownHook()  

使用ApplicationContext

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

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

3 个答案:

答案 0 :(得分:13)

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

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

不,因为registerShutdownHook()ConfigurableApplicationContext界面的一部分,未被ApplicationContext扩展

答案 1 :(得分:7)

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

答案 2 :(得分:1)

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

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

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

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