Así que he estado aprendiendo Spring en las parejas de la semana, siguiendo este tutorial
Construyendo un servicio web RESTful
Todo iba bien hasta que intenté integrarlo en mongodb. Entonces sigo este tutorial.
Pero mi práctica todavía usa parcialmente el primero. Entonces, la estructura de directorio de mi proyecto es así.
src/
├── main/
│ └── java/
| ├── model/
| | └── User.java
| ├── rest/
| | ├── Application.java
| | ├── IndexController.java
| | └── UsersController.java
| └── service/
| └── UserService.java
└── resources/
└── application.properties
Este es mi modelo / archivo User.java
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;
}
}
Este es mi archivo rest / UsersController.java
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();
}
}
Este es mi archivo 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();
}
Podría compilarlos (estoy usando gradle para la compilación porque estoy siguiendo el tutorial), pero cuando ejecuto el archivo jar estaba arrojando este error.
LA APLICACIÓN NO SE PUEDE INICIAR
Descripción:
El campo userService en main.java.rest.UsersController requería un bean de tipo 'main.java.service.UserService' que no se pudo encontrar.
Acción:
Considere definir un bean de tipo 'main.java.service.UserService' en su configuración.
No estoy seguro de qué está mal, empiezo a buscar en Google y descubrí que necesito incluir el Beans.xml
archivo y registrar el servicio de usuario en él. Hice eso pero no está funcionando. Soy realmente nuevo en esto, así que no tengo ni idea de lo que está pasando.