Also habe ich in den Paaren der Woche den Frühling gelernt und bin diesem Tutorial gefolgt
Erstellen eines RESTful-Webdienstes
Alles war gut, bis ich versuchte, es in Mongodb zu integrieren. Also folge ich diesem Tutorial.
Aber meine Praxis verwendet teilweise immer noch die erste. Meine Projektverzeichnisstruktur ist also so.
src/
├── main/
│ └── java/
| ├── model/
| | └── User.java
| ├── rest/
| | ├── Application.java
| | ├── IndexController.java
| | └── UsersController.java
| └── service/
| └── UserService.java
└── resources/
└── application.properties
Dies ist meine model / User.java- Datei
package main.java.model;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection="user")
public class User {
private int age;
private String country;
@Id
private String id;
private String name;
public User() {
super();
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
}
Dies ist meine rest / UsersController.java- Datei
package main.java.rest;
import java.util.List;
import main.java.service.UserService;
import main.java.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = "/users")
public class UsersController {
@Autowired
UserService userService;
@RequestMapping(method = RequestMethod.GET)
public List<User> getAllUsers() {
return userService.findAll();
}
}
Dies ist meine Datei service / UserService.java
package main.java.service;
import java.util.List;
import main.java.model.User;
import org.springframework.data.mongodb.repository.MongoRepository;
public interface UserService extends MongoRepository<User, String> {
public List<User> findAll();
}
Ich konnte sie kompilieren (ich verwende gradle zum Kompilieren, weil ich dem Tutorial folge), aber als ich die JAR-Datei ausführte, wurde dieser Fehler ausgelöst.
ANWENDUNG NICHT STARTBAR
Beschreibung:
Für das Feld userService in main.java.rest.UsersController war eine Bean vom Typ 'main.java.service.UserService' erforderlich, die nicht gefunden werden konnte.
Aktion:
Definieren Sie in Ihrer Konfiguration eine Bean vom Typ 'main.java.service.UserService'.
Ich bin mir nicht sicher, was falsch ist. Ich beginne zu googeln und Beans.xml
stelle fest, dass ich eine Datei einschließen und den userService darin registrieren muss. Ich habe das getan, aber es funktioniert nicht. Ich bin wirklich neu in diesem Bereich, also habe ich wirklich keine Ahnung, was los ist.