Jakarta Bean Validation Constraints 사용 방법
아이디나 비밀번호에 작성 제한(글자수, 한글, 특수문자 등)을 둘 때 쓰는 @Size 나 @Pattern 이 들어있는 패키지입니다.
아래 코드를 Build.gradle의 dependencies 에 입력하시면 사용할 수 있습니다.
implementation 'org.springframework.boot:spring-boot-starter-validation'
@Size @Pattern 사용 아이디 비밀번호 제한 두기
@Size 사용 방법
@Size 어노테이션이 붙은 element는 지정한 값의 사이(지정값 포함)에 있어야 합니다.
최소값과 최대값을 결정할 수 있습니다.
jakarta.validation.constraints를 사용하기 위해 아래를 import 합니다.
import jakarta.validation.constraints.Size;
제한을 두고 싶은 변수 위에 아래 어노테이션을 입력하고,
@Size
최소길이값은 min = 4
최대길이값은 max = 10
@Size(min=4, max=10)
필요하다면 뒤에 메세지를 추가 할 수 있습니다.
@Pattern 사용 방법
@Pattern 어노테이션이 붙은 element는 특정한 조건을 만족해야 합니다.
jakarta.validation.constraints를 사용하기 위해 아래를 import 합니다.
import jakarta.validation.constraints.Pattern;
제한을 두고 싶은 변수 위에 아래 어노테이션을 입력합니다
@Pattern
정규표현식(Regular Expression)을 사용해서 조건을 입력합니다.
regexp= 조건
@Pattern(regexp = "[a-z0-9]*$")
정규 표현식(Regular Expression) | 설명 |
^[0-9]*$ | 숫자 |
^[a-zA-Z]*$ | 영문 |
^[가-힣]*$ | 한글 |
\\w+@\\w+\\.\\w+(\\.\\w+)? | 이메일주소 |
[] | 문자의 집합 범위 |
{} | 횟수 또는 범위 |
* | 문자가 1번이상 발생 |
^ | 문자열의 시작 |
$ | 문자열의 끝 |
\ | 확장 문자의 시작 |
\w | 알파벳이나 숫자 |
아이디, 비밀번호 입력 제한 예시
// nullable: null 허용 여부
// unique: 중복 허용 여부 (false 일때 중복 허용)
@Column(nullable = false, unique = true)
@Size(min = 4, max = 10, message = "아이디의 길이는 4자에서 10자 사이입니다")
@Pattern(regexp = "[a-z0-9]*$", message = "아이디 형식이 일치하지 않습니다")
private String username;
@Column(nullable = false)
@Size(min = 8, max = 15, message = "비밀번호의 길이는 8자에서 15자 사이입니다")
@Pattern(regexp = "[a-zA-Z0-9`~!@#$%^&*()_=+|{};:,.<>/?]*$", message = "비밀번호 형식이 일치하지 않습니다")
private String password;
공식 문서
아래 Jakarta Bean Validation 공식문서를 참조하시면 도움이 됩니다.
Jakarta Bean Validation에서 사용할 수 있는 어노테이션에 대한 설명이 나와있습니다.
Jakarta Bean Validation specification
BeanNode, PropertyNode and ContainerElementNode host getContainerClass() and getTypeArgumentIndex(). If the node represents an element that is contained in a container such as Optional, List or Map, the former returns the declared type of the container and
jakarta.ee
'Things to know' 카테고리의 다른 글
ModifiedAt CreatedAt 이 null 값으로 나올 때 오류 해결 @EnableJpaAuditing (0) | 2022.12.13 |
---|---|
분기처리 분기문 뜻 Java (0) | 2022.12.10 |
스프링 @RestController와 @Controller 차이와 특징 (0) | 2022.12.08 |
쿠키와 세션 특징과 차이 (0) | 2022.12.03 |
Mac 맥 사용중인 포트 찾아서 kill 죽이기 port already in use 해결 (0) | 2022.12.02 |