コンストラクターでの Autowired Bean の初期化
別の Bean のコンストラクター内から @Autowired Bean を参照しようとすると、ヌル値。この現象は、自動配線プロセスのタイミングに起因します。
Spring Framework のメカニズムである自動配線は、アノテーションに基づいて Bean に依存関係を注入します。ただし、この注入は Bean の構築後に行われます。その結果、コンストラクター内でオートワイヤード Bean にアクセスしようとすると、null 値が生成されます。
この問題を軽減し、必要な依存関係を初期化するには、初期化コードをコンストラクターから別のメソッドに再配置し、それに @PostConstruct アノテーションを付けます。 Spring Framework は、Bean の構築と依存関係の注入後に @PostConstruct メソッドが実行されることを保証します。
たとえば、提供されたコードでは、startOOServer() メソッドをコンストラクターの外に移動し、それに @PostConstruct アノテーションを付けることができます。こうすることで、オートワイヤード Bean である applicationProperties がメソッドの実行前に利用可能になります。
以上が@Autowired Bean がコンストラクターで Null を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。