Вы упускаете главное. Класс контроллера отличается от основного класса приложения в spring-boot. Класс контроллера используется для обслуживания http-запроса в соответствии с путем. Каждый запрос обслуживается отдельным потоком. Springboot для этого следует архитектуре MVC. Итак, у вас должен быть класс Controller для обслуживания запроса, класс Service для создания модели и уровень Repository для доступа к базе данных, какой бы она ни была. А также класс Model возвращается из контроллера.
@Controller
public class GreetingController {
@Autowired
private ShoeRepository repository;
@RequestMapping(value = "/greeting" ,method = RequestMethod.GET)
public String greeting(@RequestParam(name="name", required=true) List<Shoe> list, Model model) {
model.addAttribute("name", list.get(0).asin);
List<Shoe> list = new ArrayList<>();
list.addAll(repository.findAll());
return "greeting";
}
}
Вы можете вызвать метод репозитория из контроллера, чтобы получить доступ к данным, которые должны быть правильными, или, что еще лучше, иметь промежуточный класс обслуживания, если у вас есть больше логики для реализации.
public interface ShoeRepository extends MongoRepository<Shoe, Long> {
//Custom Query
@Query("SELECT o FROM Object o WHERE o.field = somethingThatValidsIt")
public List<Shoe> customFindAll();
//Default CRUD repository implementation
public List<Shoe> findAll()
//Other methods
public Shoe findByNameAndAvailable(String name, boolean available);
}