注文

2016-10-12 6 views
2

私は春のブートアプリに取り組んでいます、と私は、特定の豆が起動時に作成される順序を確認しようとしています。私がデバッグで知る限り、これは起こっていることです:注文

  1. Configurationで定義された豆が初期化されます。
  2. 自動構成クラスで定義されたBeanが初期化されます。
  3. @Componentが付いたクラスが初期化されます。

手順1と2は、Springブートのドキュメントauto configurationに準拠しているので、私にとって意味があります。私は理解していない何

@Component注釈付きクラスが故意に最後に初期化されているかどうかである、またはこれは単に偶然の一致である場合。私はそれが何かであるときにこれを "フィーチャー"として信頼したくありません。

+0

コンポーネントスキャンされたBeanは自動設定を無効にする必要があるため、一般的に*は使用しないでください。 – chrylis

答えて

0

私は一般的に、あなたが心配してはいけないときにどのような豆が作成されると思います。そのコンストラクタ内の他のBeanの依存関係に依存するBeanは、その依存関係の後に作成されることになりますが、それはかなりです。これ以外の

任意のパターンや行動あなたの観察者は、あなたのロジックに依拠すべきではありません。あなたは実際にパターンを見つけるかもしれませんが、将来どのように起こるか分かりませんが、その行動は将来変化する可能性があります。

+0

私はこれが正しい答えだと思っています。少なくとも私の状況では。元の質問は、以前に作成されたものではないため、ある種の豆がautowiredできないように見える以前の問題から生まれました。この問題は、いくつかのリファクタリングの後に消え去ったように思えます。私は、この答えが述べているように、問題であったのは豆の作り方ではなく、私が最後にやっていたことです。 –