ホームページ  >  記事  >  Java  >  MongoDB を使用した Spring RESTful API で「フィールドには、見つからないタイプの Bean が必要でした」というエラーが発生するのはなぜですか?

MongoDB を使用した Spring RESTful API で「フィールドには、見つからないタイプの Bean が必要でした」というエラーが発生するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-01 12:49:30535ブラウズ

Why am I getting the

「フィールドには、見つからないタイプの Bean が必要でした」MongoDB を使用した Spring RESTful API のエラー

MongoDB を Spring RESTful API と統合しようとすると、ユーザーは「フィールドには、見つからないタイプの Bean が必要でした。」というエラーが発生する場合があります。このエラーは、Spring アプリケーションが必須 Bean (この場合は UserService Bean) を見つけられないことを示します。

このエラーは、Spring がプロジェクト内のコンポーネントをスキャンする方法によって発生します。デフォルトでは、Spring は @SpringBootApplication のアノテーションが付けられたパッケージ内のコンポーネントをスキャンします。この場合、UsersController クラスは UserService に依存しており、デフォルトのスキャンパスの外側にあります。

この問題を解決するには、主に 2 つのアプローチがあります。

アプローチ 1 : パッケージ スキャンのカスタマイズ

@SpringBootApplication(scanBasePackages={...}) アノテーションを使用して、コンポーネントをスキャンする必要があるパッケージを手動で指定します。この場合、メイン アプリケーション クラスに次の行を追加します。

<code class="java">@SpringBootApplication(scanBasePackages={"main.java.service", "main.java.rest"})</code>

これにより、Spring にサービス パッケージと残りのパッケージの両方でコンポーネントをスキャンするよう指示されます。

アプローチ 2:パッケージ構造の再構築

または、プロジェクトのパッケージ構造を再構築して、関連するすべてのコンポーネントが同じパッケージ内に含まれるようにします。この場合、次のようにプロジェクトを再編成します。

src/
├── main/
│   └── java/
|       └── com.example/
|       |   ├── Application.java
|       |   ├── model/
|       |   |   └── User.java
|       |   ├── rest/
|       |   |   ├── IndexController.java
|       |   |   └── UsersController.java
|       |   ├── service/
|       |   |   └── UserService.java
└── resources/
    └── application.properties

これにより、UserService に関連するすべてのコンポーネントが同じパッケージ内に存在することが保証され、Spring がそれらを自動的にスキャンします。

以上がMongoDB を使用した Spring RESTful API で「フィールドには、見つからないタイプの Bean が必要でした」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。