Study/spring 34

[Java] Spring Boot 3 @DateTimeFormat 날짜 유효성 검사 사용법

@DateTimeFormat 어노테이션을 사용하면 입력 형식을 지정해서 입력값을 날짜나 시간 객체로 변환받을 수 있습니다.예를 들어, 입력 형식을 "yyyy-MM-dd"로 지정하면 입력값이 형식에 맞는지 검증한 후 날짜 객체로 변환합니다. 사용 방법@DateTimeFormat 어노테이션을 사용하기 위한 컨트롤러를 생성합니다.import java.time.LocalDate;import org.springframework.format.annotation.DateTimeFormat;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import ja..

[Java] Spring Boot 3 @Valid ExceptionHandler 예외 처리 방법

@Valid를 사용하여 요청값을 검증할 때 검증을 통과하지 못하면 응답값이 너무 많이 나오는 문제가 있습니다.요청 값 유효성 검사를 통과하지 못했을 때 예외 처리하는 방법을 설명드리겠습니다. MethodArgumentNotValidException우선 예외처리를 위해서는 요청값 검증에 실패했을 때 발생하는 예외가 뭔지 알아야 합니다.요청값 유효성 검사를 통과하지 못하면 다음과 같은 로그를 확인할 수 있습니다.다음은 @NotBlank 검사를 통과하지 못했을 때 출력되는 로그입니다.2024-05-26T11:49:31.985+09:00 WARN 20448 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springfr..

[Java] Spring Boot 3 @RestControllerAdvice @ExceptionHandler 사용법

스프링에는 예외 처리를 위해 @ExceptionHandler와 @ControllerAdvice, @RestControllerAdvice 어노테이션이 존재합니다.이 어노테이션을 사용하는 이유와 예제를 소개해드리겠습니다. ExceptionHandler를 사용하는 이유스프링 부트에서 REST API를 요청했을 때 에러가 발생하면 일반적으로 다음과 같은 응답값이 반환됩니다. import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class ExceptionHandlerController { @GetMapping..

[Java] Spring Boot 3 Validation @Pattern 정규식 예제

@Pattern 어노테이션은 요청 값이 정규표현식에 맞는 문자열인지 검증하는 어노테이션입니다. 예제 코드숫자, 알파벳, 한글, 이메일, 전화번호, 비밀번호, 시작 문자, 끝 문자, 포함 문자, 제외 문자 정규표현식 예제입니다.import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RestController;import jakarta.validation.Valid;import jakarta.validation.constraints.Pattern;import lombok...

[Java] Spring boot 3 @NotNull @NotEmpty @NotBlank 차이 비교

@NotNull, @NotEmpty, @NotBlank 어노테이션은 Spring에서 유효성 검사할 때 많이 사용하는 어노테이션입니다.세 어노테이션의 차이와 용도에 대해 정리해보았습니다. 준비import java.util.List;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import jakarta.validation.Valid;import lombok.AllArgsConstructor;import lombok.Getter;@RestControllerpublic class ValidAnnotationController { @GetM..

[Java] Spring Boot 3 @Valid 어노테이션 사용 예제

Spring Boot 3 버전에서 @Valid 어노테이션을 사용해서 객체를 검증하는 방법입니다.ModelAttribute(Param)과 RequestBody 객체 2가지 방식을 예시로 설명하겠습니다.  Valid 사용 전 준비Valid 사용을 위해 라이브러리를 추가합니다.# pom.xml org.springframework.boot spring-boot-starter-validation # build.gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-validation'}spring-boot-starter-validation 라이브러리를 추가합니다.  어노테이션 사용을 위한..

[Java] Spring Boot .properties, .yml 파일 여러개로 분리하기

Spring 프로젝트에는 각종 설정 값들이 모여있는 application.properties, application.yml 파일이 있습니다.한 파일 안에 설정값을 넣게 되면 나중에 프로젝트가 더 커지면 설정값이 너무 많아서 찾거나 관리하기 힘들어집니다.그래서 개발 환경이나 용도에 맞게 분리하는 것이 좋습니다. 파일 분리 방법분리할 설정 파일입니다. 여기서 sql 관련 로그 부분을 따로 빼서 별도의 파일로 만들어 관리하도록 하겠습니다. src/main/resources 경로에 properties 파일을 하나 더 생성합니다.로그 설정만 따로 분리할거니까 application-log.properties라고 지었습니다.yml을 사용한다면 application-log.yml로 생성하면 됩니다.    그리고 이 파..

[Java] Spring Boot 3 JPA 쿼리 파라미터 바인딩 로그 설정

Spring Boot에서 JPA 쿼리 로그를 설정하는 방법과 로그에 ?로 표시되는 바인딩 파라미터 값을 표시하는 방법에 대해 설명드리겠습니다. 쿼리 관련 로그 설정JPA 쿼리를 로그에 표시하도록 설정하는 방법은 여러가지가 있습니다.# application.propertiesspring.jpa.show-sql=truespring.jpa.properties.hibernate.format_sql=truespring.jpa.properties.hibernate.show_sql=truespring.jpa.properties.hibernate.use_sql_comment=truespring.jpa.properties.hibernate.highlight_sql=truelogging.level.org.hibernate..

[Java] Spring Jpa Repository 메소드 명명규칙 정리

Jpa Repository를 상속받은 인터페이스에서 findByXXX 형태로 메소드를 만들면 JPA에 의해 WHERE 절이 추가되었습니다.그 외에도 다양한 조건을 사용할 수 있는데, 어떤 조건들을 사용할 수 있는지 정리해드리겠습니다. 기본 규칙메소드설명findAll()전체 데이터를 조회할 수 있습니다.findBy()조건을 추가하여 전체 데이터를 조회할 수 있습니다.findTop5By()조건에 맞는 데이터 중 상위 5건만 가져옵니다.findDistinctBy()중복을 제거하여 조회할 수 있습니다.findFirstBy()조회된 데이터 중 1건만 가져옵니다.count()전체 행 수를 조회합니다.countBy()조건에 맞는 전체 행 수를 조회합니다.save()단일 데이터를 저장합니다.saveAll()여러 건의 ..

[Java] Spring Boot Jpa findBy 단일, 여러개 조건 검색 사용법

Spring Data Jpa 쿼리 메소드란?Spring-data-jpa의 JpaRepository는 메소드 이름 규칙에 따라 쿼리를 만들어주는 기능이 있습니다.쿼리 메소드 기능을 사용해서 AND 조건, OR 조건 등 여러 조건을 사용해서 쿼리를 생성할 수 있습니다.Spring Data Jpa Query 메소드 공식 문서 바로가기 JPA Query Methods :: Spring Data JPAAs of Spring Data JPA release 1.4, we support the usage of restricted SpEL template expressions in manually defined queries that are defined with @Query. Upon the query being ru..

728x90