How to configure PageableHandlerMethodArgumentResolver in a spring boot application

I have a spring boot application and I want to configure PageableHandlerMethodArgumentResolver, I try the following code, but it does not work:

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {

    // .......

    @Override
    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
        PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
        resolver.setFallbackPageable(new PageRequest(0, 50));
        argumentResolvers.add(resolver);
        super.addArgumentResolvers(argumentResolvers);
    }
}

Controller Method:

@Override
@PreAuthorize("hasRole('ROLE_SYS_ADMIN')")
@RequestMapping(method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Page<Account>> query(@QuerydslPredicate Predicate predicate,
        @PageableDefault Pageable pageable) {
    return new ResponseEntity<>(accountRepo.findAll(predicate, pageable), HttpStatus.OK);
}

And it's just a boot application, just playing with spring boot, without the configuration class Empty Empty WebConfig

@Configuration
public class WebConfig {

    @Bean
    public Filter html5ModeFilter() {
        return new Html5ModeFilter();
    }
}

And here is a list of my configuration classes:

Html5ModeFilter.java
SecurityConfig.java
ServletInitializer.java
UserDetailsAdapter.java
WebConfig.java
+4
source share
2 answers

Drop @PageableDefaultfrom:

public ResponseEntity<Page<Account>> query(..., @PageableDefault Pageable pageable) {
    ...
}

PageableDefault The annotation is as follows:

public @interface PageableDefault {
    int value() default 10;
    int size() default 10;
    int page() default 0;
    ...
} 

These values defaultoverride your fallback value and you will see the first ten results.

+3
source

spring-data-commons version 2.0, 2 , :

  • SortHandlerMethodArgumentResolverCustomizer
  • PageableHandlerMethodArgumentResolverCustomizer

, , Spring Boot (1.5.9), .

@Bean 
PageableHandlerMethodArgumentResolverCustomizer sortCustomizer() {
    // s is PageableHandlerMethodArgumentResolver
    return p -> p.setFallbackPageable(new PageRequest(0, 50));
}

. @Ali Dehghani - , Default Fallback

Spring

0

Source: https://habr.com/ru/post/1628744/


All Articles