のは、以下のSpring構成について考えてみましょう:いくつかの理由から
@Configuration
public class MyConf1 {
@Bean
public Foo getFoo() {
// Foo class is defined as part of an external lib.
return new Foo();
}
@Bean
public Bar getBar() {
return new Bar(getFoo());
}
}
を、私は(すなわちmyFoo.shutdown();
)Foo
のメソッドを呼び出す必要がありますMyConf1
が破壊されたとき。 (ApplicationContext.getBean()
を介して)アプリケーションコンテキストから直接Beanインスタンスを取得せずにこの操作を実行する方法はありますか?
ケース2再び
、の第二Spring構成クラスを考えてみましょう:
@Configuration
public class MyConf2 {
@Bean
public ScheduledJob scheduledJob() {
Timer jobTimer = new Timer(true);
return new ScheduledJob(jobTimer);
}
}
今回は、私がMyConf2
を破壊する前jobTimer.cancel()
を起動する必要があります。実際には、をscheduledJob()
の外側にインスタンス化するか、メソッドのパラメータとしてscheduledJob(Timer jobTimer)
とすることができます。 MyConf2
のための適切なデストロイヤー方法を定義することが可能になります。しかし、他の方法があるかどうかを知りたい。
良い提案がありますか?
注:Foo
、Bar
、Timer
、ScheduledJob
クラスが外部で定義されています。したがって、内部破壊メソッドを明示的に定義する可能性はありません。前提として、MyConf1
とMyConf2
だけを変更できます。
私の質問をよくお読みください。あなたが言及したスレッドは、2番目のケースをカバーしています。私はすでに 'destroy'メソッドをどのように使用できるかについて説明しました。しかし、実際に可能であれば(関連する説明とともに)、私は他のアプローチを探しています。 – vdenotaris