У меня "org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [org.springframework.data.domain.Pageable]: указанный класс является интерфейсом" каждый раз, когда я вызываю метод контроллера rest с параметром Pageable. Другие методы контроллера работают нормально.
- Я создал класс конфигурации PaginationConfig, в котором я реализую аннотацию @EnableSpringDataWebSupport.
- Я переопределяю addArgumentResolvers в классе PaginationConfig.
- Я обновил swagger springfox с версии 2.7.0 до 2.9.2.
@Configuration
@EnableWebMvc
@EnableSpringDataWebSupport
public class PaginationConfig extends SpringDataWebConfiguration {
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver(sortResolver());
resolver.setFallbackPageable(new PageRequest(0, 50));
resolver.setSizeParameterName("p");
resolver.setPageParameterName("s");
argumentResolvers.add(resolver);
super.addArgumentResolvers(argumentResolvers);
}
}
@RestController
@RequestMapping("/element")
public class ElementController {
...
@GetMapping("/pageable")
public Page<Element> getAll(Pageable pageable) {
return finder.getAll(pageable);
}
}
Когда я называю это
http://localhost:8000/element/pageable?p=0&s=20
Я хочу получить обычный объект Page с правильным содержимым.