問題への対処:「フィールドには見つからないタイプの 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 サイトの他の関連記事を参照してください。