#java #spring #spring-mvc #pagination
#java #spring #spring-mvc #разбивка на страницы
Вопрос:
Пожалуйста, помогите мне разобраться, как Spring анализирует параметры HTTP GET из запроса в объект, подходящий для просмотра страниц, без каких-либо дополнительных аннотаций, таких как @RequestBody, @RequestParam и т.д.
Итак, я отправляю запрос, который выглядит следующим образом: GET /questions?page=0amp;size = 2amp;sort=createdAt,desc. В качестве аргумента метода getQuestions я получаю объект, состоящий из трех полей, таких как страница, размер, сортировка. Но как на самом деле работает это волшебство?
@RestController
public class QuestionController {
@Autowired
private QuestionRepository questionRepository;
@GetMapping("/questions")
public Page<Question> getQuestions(Pageable pageable) {
return questionRepository.findAll(pageable);
}
@PostMapping("/questions")
public Question createQuestion(@Valid @RequestBody Question question) {
return questionRepository.save(question);
}
// other restful methods
}
Комментарии:
1. Это не волшебство. Spring знает, что вам нужно
Pagable
— это прямо там, в аргументе метода. Затем он просто ищет хорошо известные параметры запроса. На самом деле все тривиально просто. Вы можете зарегистрировать свои собственные связыватели данных и фактически сделать то же самое для своих собственных типов.2.docs.spring.io/spring-data/jpa/docs/current/reference/html/…,