我正在使用以下控制器方法
public String listUsers(@PageableDefault(size = 20, page = 0) Pageable pageable)
显然,我们可以使用查询参数size
和page
来控制页面和大小。但是,让我们说,我们希望保护自己不要将整个数据库倾倒在一个用户页面或由于回火。是否有限制,可以设置为Pageable对象,例如。 @DefaultPageableConstrains
或者我必须手工验证尺寸?
我只想使用像@Valid
@Min
或@Max
注释这样的Spring验证机制。
答案 0 :(得分:3)
默认的maxPageSize是2000.可以像这样重写:
@Configuration
public class PaginationConfiguration extends SpringDataWebConfiguration {
private final int MAX_PAGE_SIZE = 200;
@Bean
@Override
public PageableHandlerMethodArgumentResolver pageableResolver() {
PageableHandlerMethodArgumentResolver pageableHandlerMethodArgumentResolver =
new PageableHandlerMethodArgumentResolver(sortResolver());
pageableHandlerMethodArgumentResolver.setMaxPageSize(MAX_PAGE_SIZE);
return pageableHandlerMethodArgumentResolver;
}
}