❓ 페이징 기법
수많은 자료 데이터를 일정 크기로 나누어서, 나누어진 하나하나의 집단에 페이지 번호를 부여하는 방식
- 정해진 개수와 원하는 영역의 게시판 데이터를 출력하여 가독서오가 자원 낭비 문제 개선
1. Repository
Page<FreePost> findAll(Pageable pageable);
pageable로 받은 값을 토대로 페이징 하여 Page<FreePost>를 리턴
- pageable
getPageNumber(), getPageSize() 등 페이징을 구현할 때 필요한 값들을 구현할 수 있도록 도와주는 메서드들이 있음
2. Service
public Page<FreePost> getPageList(int page) {
Pageable pageable = PageRequest.of(page, 10); // 조회할 페이지 번호(0부터 시작), 한 페이지에 보여줄 최대 개수
return this.freePostRepository.findAll(pageable);
}
조회할 페이지 번호와 한 페이지에 보여줄 최대 게시글 개수를 매개변수로 넘겨줘서 Pageable 객체를 리턴 받는다
이후 앞서 작성한 Repository.findAll 메서드에 pageable을 넘겨준다
3. Controller
@ResponseStatus(HttpStatus.CREATED)
@GetMapping("/{page}")
public Page<FreePost> getFreePostList(@PathVariable int page) {
Page<FreePost> paging = freePostService.getPageList(page);
return paging;
}
시작할 페이지 번호를 url로 입력받고, Service를 호출해서 page 값을 넘겨준다
이후 리턴 받은 Page<FreePost>를 클라이언트로 전송한다
4. 결과 확인
성공!
페이징 정보도 같이 출력됨
'SpringBoot' 카테고리의 다른 글
[Springboot] '심볼 'lombok'를 해결할 수 없습니다' 오류 해결 (0) | 2023.10.31 |
---|---|
[Springboot] swagger 적용 및 발생 오류 정리 (0) | 2023.09.20 |
[Spring boot] NullPointException 오류 해결 (0) | 2023.08.11 |
[Spring boot] BCryptPasswordEncoder 사용할 때마다 인코딩 결과가 달라질 때 (0) | 2023.08.02 |
[Spring boot] 게시글 수정 기능 구현하면서 발생한 오류 정리 (0) | 2023.07.26 |