SpringBoot Pageable로 페이징 구현하기

미분류

쿼리로 직접 페이징을 구현하려고 삽질한 웹프 초창기의 기억..프레임워크가 편리하게 처리해주니 너무 편해졌다.Spring Boot에서도 간편하게 처리가 가능하여 아주 간단히 끄적여본다. 사용법은 매우 간단한데, findAll의 파라미터로 Pageable 혹은 Pageable의 구현체인 PageRequest를 넘겨주면 된다. Controller에서 아래와 같이 pageable로 받아주면 @PathVariable로 page, size, sort, direction 등을 별도로 처리하지 않아도 알아서 처리해준다.@PageableDefault 를 사용하면 pageable이 전달되지 않았을 때의 default 값도 …

Continue Reading

Spring Boot에서 CSV 출력 기능 만들기

Kotlin Spring Boot DEVELOPMENT IT

테이블의 데이터를 CSV로 출력할 일이 생겨서 이리저리 검색하다 알게된 내용을 간단히 정리한다. 이 정리는 Kotlin + Gradle 기반으로 진행한다. Dependency CSV Generator Class 위와 같이 CSV Generator의 dataToCSV 메소드에서 전달받은 dataList의 내용을 루프를 돌면서 item에 매핑하여 csvPrinter.printRecord에 넘겨준다. Controller 컨트롤러에서는 위와같이 /csv로 들어온 request에 따라 testDataService의 데이터를 모두 읽어와서 dataList에 저장하고, 이녀석을 CSVGenerator.dataToCSV에 response.writer과 함께 …

Continue Reading

Spring Boot CharacterSet 설정

Spring Boot

데이터를 CSV로 출력할 일이 있어서 디펜던시 추가하고 기능 구현을 하고 정상적으로 작동하긴 하는데 한글이 다 깨져나와서 이리저리 알아보다가 작동하는 방법을 정리한다. bean으로 필터를 등록하는 방법도 있겠지만, application.properties에 설정 해주는 것만으로도 캐릭터셋 변경이 가능하다. 스프링부트에서는 기본적으로 CharacterEncodingFilter가 등록되어 있다고 한다. 예전에는 다음과 같이 사용했었는데, 위와같이 입력하니 IntelliJ IDEA가 Deprecated되었다고 알려주면서 다음과 같이 사용하란다. 위와같이 추가해주고, 다시 …

Continue Reading

jib 빌드 시 프로퍼티로 분기처리하기

Spring Boot DEVELOPMENT

spring boot의 경우 부트 시에 -Dspring.profile.active로 프로파일을 선택할 수 있지만 jib의 경우 해당 프로파일을 불러다가 사용할 수 없기에 검색하다가 알게 된 사실.project.hasProperty(‘propertyName’) 으로 처리가 가능하다. 위와 같이 분기 처리를 해준 뒤 gradle jib 와 같이 실행하면 jvmFlags는 dev 프로파일로 빌드를 하고 gradle jib -Pproduction과 같이 실행하면 production 프로파일로 빌드를 하게 된다. 끝.

Continue Reading