春オープンクラス、レコードのどのような豆循環参照の問題を見ました。
問題:
パブリッククラスIndexService {
@Autowired
IndexDao indexDao;
}
パブリッククラスIndexDao {
@Autowired
インデックスサービスインデックスサービス。
}
上記の例IndexService依存IndexDao、IndexDao依存IndexService。
インスタンス化プロセスにおける豆の春:
IndexDao Beanを作成するために行きます、
1.この時点で生成され、IndexDaoインスタンスを作成しますIndexDao Beanを持っていません。
この設定処理では、このプロパティはIndexServiceで、オブジェクトのプロパティを構成する2 IndexDaoはでsingleFactoryにオブジェクト(IndexDao)それ自身を置きます。
そして、IndexService豆の充填を見つけるために行く3、その後に、またはないsingleFactoryに行かないプール(専門ストレージ豆)の一つのケースを発見しました。
4.この時点では、何のIndexService BeanをIndexServiceインスタンスを作成しません。
この設定プロセスでは、IndexDaoあるオブジェクトのプロパティを設定する5. IndexServiceはsingleFactoryにオブジェクト(IndexDao)独自のを置きます。
そして、プールの単一場合には見られない、埋めるためにIndexDao Beanを見つけ、その後、singleFactoryに行く6.がありました。
7. IndexServiceは、プロパティに充填します。
4,5,6,7-後8. IndexServiceを有しており、この時点で属性IndexDaoの値を有する、ステップ3で、次いでIndexService IndexDaoに注入
9.その後、後続の初期化IndexDao豆を続けます。