Spring はそれ自体を構成するのに約 5 秒から 10 秒かかります。私はインフラストラクチャ Bean に XML を使用し、その他すべてのアノテーションを使用してコンポーネント スキャンを使用しています。
Spring JavaConfig は、コンポーネント スキャンの必要性と、タイプごとに自動配線 Bean に発生するすべてのリフレクションを排除しますか? JavaConfig で起動時間の改善を見た人はいますか?
私の主な関心事は、統合テストを高速化することです。
を引き続き使用しても@ComponentScan
、同じスキャンが行われるため、明らかに改善は見られません。別の形式を使用して有効にしているだけです。
一方、@Bean
アノテーションを使用してすべての Bean を定義し、他のメソッドを呼び出して手動で配線を実行すると@Bean
、コンポーネントのスキャン コストを回避できますが、XML を Java と交換したことを除けば、90 年代に戻ることになります (一種の改善)。また、Java 構成にもコストがかかることを覚えておいてください。@Configuration
この質問の範囲を超えた理由で、各クラスには CGLIB プロキシが必要です。
私が通常行っているのは@Bean
、インフラストラクチャ Bean (制御できないもの) と@ComponentScan
その他すべてに使用することです。遅延の原因はコンポーネント スキャンであり、Hibernate やその他のサードパーティ ライブラリの起動時間ではありませんか? スキャンしている場合は、開発者の快適さのために起動時間をトレードしています (すべてを手動で宣言/配線する必要はありません)。
もちろん、コンポーネントのスキャン時間を短縮する方法はあります。主に、パッケージ/クラス名を慎重にフィルタリングして、関連するクラスのみをスキャンします。