Beim Versuch, MongoDB mit einer Spring RESTful API zu integrieren, Benutzer Möglicherweise tritt der Fehler auf: „Für das Feld war eine Bean des Typs erforderlich, die nicht gefunden werden konnte.“ Dieser Fehler weist darauf hin, dass die Spring-Anwendung darin keine wichtige Bean finden kann In diesem Fall die UserService-Bean.
Der Fehler entsteht durch die Art und Weise, wie Spring nach Komponenten im Projekt sucht. Standardmäßig sucht Spring nach Komponenten in Paketen, die mit @SpringBootApplication annotiert sind. In diesem Fall befindet sich die UsersController-Klasse, die vom UserService abhängt, außerhalb des Standard-Scanpfads.
Um dieses Problem zu beheben, gibt es zwei Hauptansätze:
Ansatz 1 : Paket-Scan anpassen
Geben Sie manuell die Pakete an, die mithilfe von auf Komponenten gescannt werden sollen @SpringBootApplication(scanBasePackages={...}) Annotation. Fügen Sie in diesem Fall die folgende Zeile zur Hauptanwendungsklasse hinzu:
<code class="java">@SpringBootApplication(scanBasePackages={"main.java.service", "main.java.rest"})</code>
Dadurch wird Spring angewiesen, sowohl die Service- als auch die Restpakete nach Komponenten zu durchsuchen.
Ansatz 2: Paketstruktur neu strukturieren
Alternativ können Sie die Paketstruktur des Projekts neu strukturieren, um sicherzustellen, dass sich alle zugehörigen Komponenten im selben Paket befinden. In diesem Fall organisieren Sie das Projekt wie folgt neu:
src/ ├── main/ │ └── java/ | └── com.example/ | | ├── Application.java | | ├── model/ | | | └── User.java | | ├── rest/ | | | ├── IndexController.java | | | └── UsersController.java | | ├── service/ | | | └── UserService.java └── resources/ └── application.properties
Dadurch wird sichergestellt, dass sich alle mit dem UserService verbundenen Komponenten im selben Paket befinden und Spring sie automatisch scannt.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meiner Spring RESTful API mit MongoDB die Fehlermeldung „Für das Feld war eine Bean des Typs erforderlich, die nicht gefunden werden konnte“?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!