Spring Data가 제공하는 페이징과 정렬 기능을 Spring MVC에서도 사용할 수 있다.
@GetMapping("/members")
public Page<Member> list(Pageable pageable) {
Page<Member> page = memberRepository.findAll(pageable);
return page;
}
Controller 의 메소드 매개변수로 Pageable
을 받을 수 있다.
브라우저에서 쿼리스트링(요청파라미터)으로 Pageable
에 값을 넘길 수 있다.
/members?page=0&size=3&sort=id,desc&sort=username,desc
sort
파라미터 추가 가능// application.properties 에 등록을 안하더라도 스프링 부트에선 기본으로 20, 2000으로 등록되어 있다.
spring.data.web.pageble.default-page-size=20
spring.data.web.pageble.max-page-size=2000
@PageableDefault
사용@GetMapping
public String list(
@PageableDefault(size = 12, sort = “username”,
direction = Sort.Direction.DESC) Pageable pageable) {
...
}
@Qualifier
접두사명을 추가하여 접두사로 구분
-> 접두사명_xxx
예시 : /members?member_page=0&order_page=1
public String list(
@Qualifier("member") Pageable memberPageable,
@Qualifier("order") Pageable orderPageable, ...)