NettyRPC のコードを読むと、Spring の InitializingBean
が RpcServer
に実装されていることがわかり、メソッド実装内で Netty サーバーが起動され、ブロックされています。
リーリー
https://github.com/luxiaoxun/...
黄舟2017-06-23 09:16:20
とても愚かな質問をしたような気がします... Springコンテナの初期化処理はシングルスレッドです。ここでブロックされると、当然...その後の作業が実行できなくなります。
テスト Bean は Bean 設定ファイルの最後に追加され、初期化中にログが記録されますが、結果は出力されません。巴扎黑2017-06-23 09:16:20
これは合理的なはずです。Bean が複数のスレッドによってインスタンス化される場合、Bean と Bean 間の依存関係の処理が難しくなり、コードの複雑さが急激に増加するからです。
PHP中文网2017-06-23 09:16:20
合理的です。理由は上記に記載されています。 Bean を非同期で初期化する必要がある場合は、BeanFactory のロジックを書き直すだけです。前提として、これらの Bean が相互に依存しないようにする必要があります。