13

AbstractApplicationContext和有什么区别ApplicationContext ?我们可以打电话吗

context.registerShutdownHook()  

使用ApplicationContext

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

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

3 回答 3

14

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

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

不,因为registerShutdownHook()ConfigurableApplicationContext接口的一部分,没有被扩展ApplicationContext

于 2012-08-07T18:27:35.373 回答
9

registerShutdownHook() 优雅地关闭 bean 并像调用destroy方法一样进行预制完成。这是接口ConfigurableApplicationContext中声明的方法,由AbstractApplicationContext实现,它不是ApplicationContext实现的,所以只能从AbstractApplicationContext的对象调用registerShutdownHook()

于 2013-02-28T05:34:15.177 回答
1

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

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

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

Difference: ConfigurableApplicationContext is an interface where the methods are implemented in AbstractApplicationContext class.

于 2016-02-21T22:30:04.873 回答