1. ホーム
  2. java

[解決済み] Springで起動時にメソッドを実行する

2022-04-14 05:24:26

質問

Spring 3には、アプリケーションの初回起動時に、いくつかのメソッドを実行する機能はありますか?でメソッドを設定するトリックができることは知っています。 @Scheduled アノテーションを使用すると、起動直後に実行されますが、その後は定期的に実行されます。

解決方法は?

もし、「アプリケーション起動」という言葉が「アプリケーションコンテキスト起動」を意味するならば、次のようなものがあります。 多くの方法があります 最も簡単なのは(シングルトンのビーンでは)メソッドにアノテーションを付けることです。 @PostConstruct . 他のオプションはリンク先を見てください。

  • でアノテーションされたメソッド @PostConstruct
  • afterPropertiesSet() で定義されているように InitializingBean コールバックインターフェース
  • カスタム設定されたinit()メソッド

技術的には、これらのフックは ビーン のライフサイクルではなく、コンテキストのライフサイクルです。しかし、99%の場合、この2つは同等です。

もし、コンテキストの起動/終了に特別にフックする必要がある場合は、次のようにします。 を実装します。 Lifecycle インターフェース の代わりに、その必要はないでしょう。