Study/spring 39

[Java] spring-boot-starter-web 라이브러리의 역할

spring-boot-starter-web은 스프링 부트에서 많이 사용하는 라이브러리입니다.이 라이브러리의 의미와 역할에 대해 정리해보았습니다. spring-boot-starter-web이란?spring-boot-starter-web은 웹 요청을 처리하기 위한 의존성이 포함되어있는 라이브러리입니다.내부에는 아래 라이브러리들이 포함되어있습니다.spring-webspring-webmvcspring-boot-starterspring-boot-starter-tomcatspring-boot-starter-json 이 라이브러리의 하위에 jackson, spring-core, spring-bean 등 많은 의존성들이 포함되어있어서 수많은 라이브러리를 가져올 필요 없이 spring-boot-starter-web 하나..

[Java] Spring Boot 3 @Slf4j 어노테이션 설정 방법

@Slf4j란?@Slf4j는 Lombok 라이브러리에서 제공하는 어노테이션으로, 클래스에 적용하면 SLF4J(Simple Logging Facade for Java) 로깅 인터페이스를 사용하여 로그를 기록할 수 있는 로거 인스턴스가 자동으로 생성됩니다. 이를 통해 별도로 로거 인스턴스를 선언할 필요 없이 로그를 간편하게 사용할 수 있습니다. @Slf4j 어노테이션 사용 전/후 코드 비교@Slf4j 어노테이션이 없을 때import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Service;@Servicepublic class DemoService { private static final Log..

[Java] Spring initializr 사용법(start.spring.io)

Spring initalizr는 스프링 부트 프로젝트를 생성할 수 있게 해주는 도구입니다.start.spring.io 페이지에서 생성하는 방법과 CLI 환경에서 명령어를 사용해서 생성하는 방법을 설명드리겠습니다. 웹 페이지에서 생성하는 방법https://start.spring.io/에 접속합니다. Project: 프로젝트 빌드 도구입니다. Maven을 사용할지, Gradle을 사용할지 선택하면 됩니다.Language: 프로젝트에서 사용할 언어입니다. Java나 Kotlin, Groovy 중 원하는 언어를 선택합니다.Spring Boot: 버전을 선택합니다. 스프링 부트 2버전은 더이상 선택할 수 없기 때문에 3버전을 선택해야 합니다. SNAPSHOT이 붙은 버전은 아직 정식 출시되지 않은 버전이기 때문에..

[Java] Spring Boot 3 JPA update 데이터 수정 사용법 및 예제

Spring Boot 3버전으로 spring-data-jpa update 기능을 사용하는 방법에 대해 설명드리겠습니다. 테이블, Repository 준비update 기능을 실습할 엔티티와 리포지토리입니다.// 엔티티 import jakarta.persistence.Column;import jakarta.persistence.Entity;import jakarta.persistence.GeneratedValue;import jakarta.persistence.GenerationType;import jakarta.persistence.Id;import lombok.AllArgsConstructor;import lombok.Getter;import lombok.NoArgsConstructor;@Entity@G..

[Java] Spring Boot 3 JPA insert 데이터 등록 사용법 및 예제

Spring Boot 3 버전에서 spring-data-jpa를 사용하여 테이블에 데이터를 넣는 방법에 대해 설명드리겠습니다. 테이블, Repository 준비insert 기능을 실습할 엔티티와 테이블을 준비합니다.import jakarta.persistence.Column;import jakarta.persistence.Entity;import jakarta.persistence.GeneratedValue;import jakarta.persistence.GenerationType;import jakarta.persistence.Id;import lombok.AllArgsConstructor;import lombok.Getter;import lombok.NoArgsConstructor;@Entity@Ge..

[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..

728x90