SpringのApplicationContextを閉じる

新しいSpring ApplicationContextを作成すると、たとえば次のようになります。

final ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfiguration.class);

Eclipse(STS 3.2.0)は、潜在的なリソースリークとしてマークします。

ここまでは順調ですね。次に、問題を調べようとしましたが、 close()shutdown()などのメソッドを見つけることができませんでした。 > ApplicationContext をクリックします。これは、Eclipseの警告は、意図されたデザイン、または私は何かを見逃していますか?

4

9 答え

close メソッドを定義していない ApplicationContext として ac を宣言します。 close()を提供する Closeable (例: ConfigurableApplicationContext )を拡張する任意のスーパータイプの AnnotationConfigApplicationContext メソッドを使用して、すべてのリソースを解放する必要があります。

5
追加された

close メソッドを定義していない ApplicationContext として ac を宣言します。 close()を提供する Closeable (例: ConfigurableApplicationContext )を拡張する任意のスーパータイプの AnnotationConfigApplicationContext メソッドを使用して、すべてのリソースを解放する必要があります。

5
追加された

close メソッドを定義していない ApplicationContext として ac を宣言します。 close()を提供する Closeable (例: ConfigurableApplicationContext )を拡張する任意のスーパータイプの AnnotationConfigApplicationContext メソッドを使用して、すべてのリソースを解放する必要があります。

5
追加された

Java 7を使用する場合は、try-with-resourcesステートメントを使用して作業を実行できます

try (AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(...))
{
  ...
}
5
追加された

Java 7を使用する場合は、try-with-resourcesステートメントを使用して作業を実行できます

try (AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(...))
{
  ...
}
5
追加された

はい、インターフェイス ApplicationContext には close()メソッドはありませんが、子クラス AbstractApplicationContext および GenericApplicationContext には、 close ()destroy()を使用します。ですから、代わりに使うことをお勧めします。また、便利なメソッド registerShutdownHook()もあります。

4
追加された

はい、インターフェイス ApplicationContext には close()メソッドはありませんが、子クラス AbstractApplicationContext および GenericApplicationContext には、 close ()destroy()を使用します。ですから、代わりに使うことをお勧めします。また、便利なメソッド registerShutdownHook()もあります。

4
追加された

はい、インターフェイス ApplicationContext には close()メソッドはありませんが、子クラス AbstractApplicationContext および GenericApplicationContext には、 close ()destroy()を使用します。ですから、代わりに使うことをお勧めします。また、便利なメソッド registerShutdownHook()もあります。

4
追加された

ApplicationContextをclose()メソッドを定義するConfigurableApplicationContextにダウンキャストします。

((ConfigurableApplicationContext)appCtx).close();

see https://stackoverflow.com/a/14424009/466363

0
追加された