1. ホーム
  2. java

[解決済み] Spring Bootの@ComponentScanと@EnableAutoConfigurationの違いは何ですか?

2023-06-24 21:55:43

質問

の違いは何ですか? @ComponentScan@EnableAutoConfiguration アノテーションを追加する必要がありますか?これらを追加する必要がありますか?私のアプリケーションは、これらのアノテーションなしで非常にうまく動作します。私はちょうど私達がそれらを追加しなければならない理由を理解したいです。

どのように解決するのですか?

<ブロッククオート

Spring Bootの@ComponentScanと Spring Bootの@EnableAutoConfigurationアノテーションの違いは何ですか?

@EnableAutoConfiguration アノテーションは、追加したjarの依存関係に基づいて、Springをどのように構成したいかをSpring Bootに"guess"指示します。例えば、HSQLDBがクラスパスにあり、データベース接続ビーンを手動で設定していない場合、Springはインメモリデータベースを自動構成します。

@ComponentScan は、指定されたパッケージ内の他のコンポーネント、設定、サービスを探すようにSpringに指示します。Springは事前に定義されたプロジェクトパッケージからBeanやコンポーネントを自動的にスキャンし、検出し、登録することができます。パッケージが指定されていない場合、現在のクラスパッケージがルートパッケージとして扱われます。

これらを追加する必要があるのでしょうか?

Spring bootにすべての設定を自動化させたい場合 @EnableAutoConfiguration が必要です。手動で追加する必要はなく、提供されたアノテーションを元にspringが内部で追加してくれます。

実際には @SpringBootApplication アノテーションは @Configuration , @EnableAutoConfiguration そして @ComponentScan をデフォルトの属性で指定します。

も参照してください。