Heim  >  Artikel  >  Java  >  Warum 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“?

Warum 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“?

Susan Sarandon
Susan SarandonOriginal
2024-11-01 12:49:30535Durchsuche

Why am I getting the

Fehler „Feld erforderte eine Bean des Typs, die nicht gefunden werden konnte“ in der Spring RESTful API bei Verwendung von MongoDB

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn