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()の一部であるためですConfigurableApplicationContextApplicationContext

于 2012-08-07T18:27:35.373 に答える
9

registerShutdownHook() は、destroy メソッドを呼び出すように、Bean を正常にシャットダウンし、ファイナライズをプリフォームします。これは、AbstractApplicationContext によって実装されるインターフェース ConfigurableApplicationContext で宣言されたメソッドであり、ApplicationContext によって実装されません。したがって、registerShutdownHook() の呼び出しは、AbstractApplicationContext のオブジェクトからのみ可能です。

于 2013-02-28T05:34:15.177 に答える
1

registerShutdownHook() は ApplicationContext の一部ではありません。そのため、アプリケーション コンテキストは使用できません。

このメソッドは、ConfigurableApplicationContext または AbstractApplicationContext を使用して参照を使用して呼び出すことができます。

メソッドは、インターフェイスまたは実装を持つクラスから呼び出すことができます。なぜなら、実際には AbstractApplicationContext の参照を使用して ClassPathXmlApplicationContext のオブジェクトを作成するからです。

違い: ConfigurableApplicationContext は、メソッドが AbstractApplicationContext クラスに実装されているインターフェイスです。

于 2016-02-21T22:30:04.873 に答える