springboot

SpringBoot

SpringBoot graceful shutdown

Graceful shutdown? kill -9를 통해 프로세스를 죽일 때와 달리kill -15 프로세스를 죽일 때에는 정상적으로 프로세스가 종료되어야한다. 때문에 모든 요청이 처리될 때까지 기다린 다음에 종료되어야한다. 때문에 이러한 옵션을 위해서는 application yaml 파일의 server.shutdown 옵션을 수정하면 된다. 위와 같이 기본 옵션인 immediate는 요청을 처리하다가도 정상 종료를 받으면 즉시 모든 요청까지 종료시킨다. 이는 오토스케일링되는 환경에서 파드의 변경 발생 시 요청이 중단되는 현상을 발생시킬 수 있으므로 활성화해도록 하자 server.shutdown = graceful 설정 시 앞으로 들어오는 요청을 중지시키고 남은 요청을 모두 처리한 후에 프로세스를 종료시킨다.

SpringBoot

kotlin 환경에서 redisHash entity id field val로 선언 시 발생하는 오류

Short description 아래의 간단한 API를 테스트하던 중, 갑작스러운 500 오류가 발생했습니다. override fun checkCode(email: String, code: String): Boolean { if (codeRepository.findByEmail(email).orElse(null)?.code == code) return true return false } framework.data.keyvalue.core.UncategorizedKeyValueException: No accessor to set property @org.springframework.data.annotation.Id()private final java.lang.String com.we.webackend.do..

SpringBoot

kotlin 환경에서 OpenFeign ErrorDecode 시 발생하는 역직렬화 작업 오류

문제 상황 기존 A서비스에서 B 서비스 호출 시 FeignException 핸들링은 작업해두었으나, 그로인해 오류가 발생하게되면 핸들링해놓은 응답만 반환될 뿐, 특정 상황에 커스텀된 오류 메시지가 A서비스를 호출한 클라이언트 측까지 전달되지 않았습니다. 고로 ErrorDecode를 통해 B의 오류 메시지를 클라이언트측까지 전달하려 했으나..... com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.info.info_v2_backend.common.exception.ErrorResponse` (no Creators, like default constructor, exist): canno..

SpringBoot

JPA-Native-Query에-파라미터로-Enum-값-받을-때-오류

JPA에서 nativeQuery 사용 시에 넣는 파라미터가 Enum으로 입력 시에 java.sql.SQLException: Incorrect string value: 에러 해결 https://herojoon-dev.tistory.com/12 해당 글에서 포스팅하고 있는 'utf8mb4' 관련 오류가 발생하는데 사실 enum값을 전달할 때 enum.name을 전달하는 것이 아니라 코드 자체를 인코딩해서 전달해서 발생하는 문제로 추정된다. 문제 발생 쿼리: 문제 해결 쿼리: 위와 같이 enum의 name을 String으로 받아서 파라미터로 입력하면 해결된다.

SpringBoot

SpringBoot Async를 이용한 multipartfile처리

문제 발생 @RestController class Controller( private val imageService: ImageService ) { @PutMapping("/image") fun addImage(@RequestPart image: MultipartFile) { imageService.upload(image) } } interface ImageService { fun upload(image: MultipartFile) } @Serice class ImageServiceImpl: ImageService { @Async override fun upload(image: MultipartFile) { ... } } 위와 같이 Async 어노테이션을 통해 비동기 함수를 통해 multipartfile..

SpringBoot

UserDetailsService를 통해 받아온 UserDetails를 활용한 LazyLoading 구현 (OpenEntityManagerInView)

문제 상황 @GetMapping("/test") fun getTest( @AuthenticationPrincipal user: User? ): StudentInfoResponse { return (user as Student).toStudentInfoResponse() } @AuthenticationPrincipal 어노테이션을 이용하여, 로그인시 userDetailsService에서 가져온 userDetails 정보를 getMyInfo 함수에서 사용하고자 했습니다. @Where(clause = "user_is_delete = false") @SQLDelete(sql = "UPDATE `user` SET user_is_delete = true where id = ?") @Table(name = "user..

xlwdn98767
'springboot' 태그의 글 목록