ホームページ  >  記事  >  Java  >  Spring アプリケーションが UserService Bean を見つけられないのはなぜですか?

Spring アプリケーションが UserService Bean を見つけられないのはなぜですか?

DDD
DDDオリジナル
2024-11-02 09:33:31530ブラウズ

Why Can't My Spring Application Find My UserService Bean?

問題への対処:「フィールドには見つからないタイプの Bean が必要でした」

エラー メッセージ「フィールド userService in main. java.rest.UsersController には、タイプ 'main.java.service.UserService' の Bean が必要でしたが、見つかりませんでした。」は、Spring アプリケーションがタイプ 'main.java.service.UserService' の登録された Bean を見つけることができないことを示します。

原因:

この問題は、Spring コンテナが指定されたタイプの Bean 定義を見つけられない場合に発生します。通常、Bean は @Service などのアノテーションを使用して定義されますが、Spring で MongoDB を使用する場合は、通常、MongoRepository からリポジトリ インターフェイスを拡張します。

解決策:

考えられる方法は 2 つあります。この問題を解決する解決策:

解決策 1: プロジェクト構造の再構築

Spring コンテナによってスキャンされるパッケージに UserService クラスを移動します。デフォルトでは、Spring は @SpringBootApplication アノテーションが宣言されている基本パッケージの下にあるすべてのパッケージをスキャンします。メインクラスが com.example.something にある場合は、UserService を com.example.something.service に移動します。

解決策 2: @ComponentScan を使用する

以下を追加します@SpringBootApplication アノテーションが宣言されているメイン クラスへの行:

<code class="java">@SpringBootApplication(scanBasePackages = {
    "com.example.something", // Your default scanned package
    "main.java.service"      // The package containing the UserService class
})</code>

これにより、Bean スキャン プロセスに「main.java.service」パッケージが明示的に組み込まれます。

以上がSpring アプリケーションが UserService Bean を見つけられないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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