728x90
dto.java 파일을 생성 후 데이터 객체에 어노테이션을 추가했는데
빨간 줄이 뜨면서 validation 패키지 자체가 주입이 되어 있지 않는 것을 확인했다
Spring Validation이란?
validation이란 프로그래밍에 있어서 가장 필요한 부분이다.
Java/Kotlin 에서는 null값에 대해 접근하려고 할 때, null point exception이 발생한다. 이런 부분을 방지하기 위해 미리 검증하는 과정을 Validation이라고 함
검색해보니
spring boot 2.3 version 이상부터는 spring-boot-starter-web 의존성 내부에 있던 validation이 사라져
spring boot version이 2.3 이상이라면 validation 의존성을 따로 추가해주어야 한다고 한다.
먼저 의존성을 추가해야한다
maven pom.xml 파일에 의존성 추가
아래 내용을 추가해주고 빌드하면 된다
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<version>2.5.2</version>
</dependency>
validation 적용하기
dto 데이터 객체에 annotation을 추가 해주니 화면에서 잘 적용된 걸 확인할 수 있다.
이 외 가능한 유효성 검사
@Null
// null만 혀용합니다.
@NotNull
// null을 허용하지 않습니다. "", " "는 허용합니다.
@NotEmpty
// null, ""을 허용하지 않습니다. " "는 허용합니다.
@NotBlank
// null, "", " " 모두 허용하지 않습니다.
// 이메일 형식을 검사합니다. 다만 ""의 경우를 통과 시킵니다. @Email 보다 아래 나올 @Patten을 통한 정규식 검사를 더 많이 사용합니다.
@Pattern(regexp = )
// 정규식을 검사할 때 사용됩니다.
@Size(min=, max=)
// 길이를 제한할 때 사용됩니다.
@Max(value = )
// value 이하의 값을 받을 때 사용됩니다.
@Min(value = )
// value 이상의 값을 받을 때 사용됩니다.
@Positive
// 값을 양수로 제한합니다.
@PositiveOrZero
// 값을 양수와 0만 가능하도록 제한합니다.
@Negative
// 값을 음수로 제한합니다.
@NegativeOrZero
// 값을 음수와 0만 가능하도록 제한합니다.
@Future
// 현재보다 미래
@Past
// 현재보다 과거
@AssertFalse
// false 여부, null은 체크하지 않습니다.
@AssertTrue
// true 여부, null은 체크하지 않습니다.
728x90
'SPRINGBOOT' 카테고리의 다른 글
IntelliJ - finished with non-zero exit value 1 해결 방법 (0) | 2024.01.24 |
---|---|
springboot, thymeleaf 'cannot be found on null' 해결방법 (0) | 2023.06.01 |
spring boot - dao, dto, service, mapper 개념 (0) | 2023.05.07 |
springboot - model 생성, controller 연결하기 (0) | 2023.04.01 |
springboot controller만들기(1) - Getmapping, Requestparam (0) | 2023.03.26 |