Springboot: i need help in explaining the Major method and emphasise on the pageables and how it is used to create a page. ============================================= FeedService Class: publicPageResponsegetUserFeeds(intpageNum,intpageSize){ Stringusername=SecurityContextHolder.getContext().getAuthentication().getName(); Useruser=this.userRepository.findByUsername(username) .orElseThrow(()->newUserNotFoundException(String.format("Username doesn't exist, %s",username))); Pagepaged=this.feedRepository.findByUser(user,PageRequest.of(pageNum,pageSize,Sort.by("feedId").descending())); returnnewPageResponse(paged); } publicPageResponsegetOtherUsersFeeds(intpageNum,intpageSize){ Stringusername=SecurityContextHolder.getContext().getAuthentication().getName(); Useruser=this.userRepository.findByUsername(username) .orElseThrow(()->newUserNotFoundException(String.format("Username doesn't exist, %s",username))); Pagepaged=this.feedRepository.findByUserNot(user,PageRequest.of(pageNum,pageSize,Sort.by("feedId").descending())); returnnewPageResponse(paged); } ========================================================= FeedController class: @GetMapping("/user/{pageNum}/{pageSize}") publicPageResponsegetUserFeeds(@PathVariableintpageNum,@PathVariableintpageSize){ logger.debug("Getting User Feeds List, pageNum: {}, pageSize: {}",pageNum,pageSize); returnthis.feedService.getUserFeeds(pageNum,pageSize); } @GetMapping("/other/{pageNum}/{pageSize}") publicPageResponsegetOtherUsersFeeds(@PathVariableintpageNum,@PathVariableintpageSize){ logger.debug("Getting Other Users Feeds List, pageNum: {}, pageSize: {}",pageNum,pageSize); returnthis.feedService.getOtherUsersFeeds(pageNum,pageSize); } =========================================================== PageResponseClass public class PageResponse { intpageNum; intpageSize; inttotalPages; Listcontent; publicPageResponse(Pagepaged){ if(Optional.ofNullable(paged).isPresent()){ this.pageNum=paged.getNumber(); this.pageSize=paged.getSize(); this.totalPages=paged.getTotalPages(); this.content=paged.getContent(); } } publicintgetPageNum(){ returnpageNum; } publicvoidsetPageNum(intpageNum){ this.pageNum=pageNum; } publicintgetPageSize(){ returnpageSize; } publicvoidsetPageSize(intpageSize){ this.pageSize=pageSize; } publicintgetTotalPages(){ returntotalPages; } publicvoidsetTotalPages(inttotalPages){ this.totalPages=totalPages; } publicListgetContent(){ returncontent; } publicvoidsetContent(Listcontent){ this.content=content; } }
Springboot:
i need help in explaining the Major method and emphasise on the pageables and how it is used to create a page.
=============================================
FeedService Class:
publicPageResponse<Feed>getUserFeeds(intpageNum,intpageSize){
Stringusername=SecurityContextHolder.getContext().getAuthentication().getName();
Useruser=this.userRepository.findByUsername(username)
.orElseThrow(()->newUserNotFoundException(String.format("Username doesn't exist, %s",username)));
Page<Feed>paged=this.feedRepository.findByUser(user,PageRequest.of(pageNum,pageSize,Sort.by("feedId").descending()));
returnnewPageResponse<Feed>(paged);
}
publicPageResponse<Feed>getOtherUsersFeeds(intpageNum,intpageSize){
Stringusername=SecurityContextHolder.getContext().getAuthentication().getName();
Useruser=this.userRepository.findByUsername(username)
.orElseThrow(()->newUserNotFoundException(String.format("Username doesn't exist, %s",username)));
Page<Feed>paged=this.feedRepository.findByUserNot(user,PageRequest.of(pageNum,pageSize,Sort.by("feedId").descending()));
returnnewPageResponse<Feed>(paged);
}
=========================================================
FeedController class:
@GetMapping("/user/{pageNum}/{pageSize}")
publicPageResponse<Feed>getUserFeeds(@PathVariableintpageNum,@PathVariableintpageSize){
logger.debug("Getting User Feeds List, pageNum: {}, pageSize: {}",pageNum,pageSize);
returnthis.feedService.getUserFeeds(pageNum,pageSize);
}
@GetMapping("/other/{pageNum}/{pageSize}")
publicPageResponse<Feed>getOtherUsersFeeds(@PathVariableintpageNum,@PathVariableintpageSize){
logger.debug("Getting Other Users Feeds List, pageNum: {}, pageSize: {}",pageNum,pageSize);
returnthis.feedService.getOtherUsersFeeds(pageNum,pageSize);
}
===========================================================
PageResponseClass
public class PageResponse<T> {
intpageNum;
intpageSize;
inttotalPages;
List<T>content;
publicPageResponse(Page<T>paged){
if(Optional.ofNullable(paged).isPresent()){
this.pageNum=paged.getNumber();
this.pageSize=paged.getSize();
this.totalPages=paged.getTotalPages();
this.content=paged.getContent();
}
}
publicintgetPageNum(){
returnpageNum;
}
publicvoidsetPageNum(intpageNum){
this.pageNum=pageNum;
}
publicintgetPageSize(){
returnpageSize;
}
publicvoidsetPageSize(intpageSize){
this.pageSize=pageSize;
}
publicintgetTotalPages(){
returntotalPages;
}
publicvoidsetTotalPages(inttotalPages){
this.totalPages=totalPages;
}
publicList<T>getContent(){
returncontent;
}
publicvoidsetContent(List<T>content){
this.content=content;
}
}
Step by step
Solved in 3 steps