1. ホーム
  2. java

[解決済み] なぜ@PostConstructを使うのか?

2022-03-15 01:04:58

質問

マネージドビーンの中で @PostConstruct は、通常のJavaオブジェクトのコンストラクタの後に呼び出されます。

なぜ @PostConstruct を使用して、通常のコンストラクタそのものではなく、ビーンによって初期化されますか?

どのように解決するのですか?

  • なぜなら、コンストラクタが呼ばれたとき、Bean はまだ初期化されていない、つまり依存関係が注入されていないからです。そのため @PostConstruct メソッドを使用すると、Bean は完全に初期化され、依存関係を使用することができます。

  • なぜなら、これはこのメソッドがビーンライフサイクルの中で一度だけ起動されることを保証する契約だからです。コンテナの内部動作で,ビーンが複数回インスタンス化されることが (ありえないことだが) 起こるかもしれないが,この契約は,このメソッドが,ビーンのライフサイクルで一度だけ起動されることを保証する。 @PostConstruct は一度だけ起動されます。