Spring boot Validation

kkjj·2022년 5월 15일
0

Validation

Validation이란 프로그래밍에 있어서 가장 필요한 부분 입니다. 특히 Java에서는 null값에 대해서 접근 하려고할때 null pointer exception 이 발생함으로, 이러한 부분을 방지 하기 위해서 미리 검증을 하는 과정을 Validation이라고 합니다.

단순하게 아래와 같은 코드들 입니다.

public void run(String account,Spring pw,int age){

if(account ==null||pw ==null)
}
if(age == 0){
	return
}
//정상 Logic
} 
  1. 검증해야 할 값이 많은 경우 코드의 길이가 길어진다.
  2. 구현에 따라서 달라 질수있지만 Service Logic과의 분리가 반드시 필요하다.
  3. 흩어져있는 경우 어디에서 검증을 하는지 알기 어려우며,재사용의 한계가 있다.
  4. 구현에 따라 달라질수있지만, 검증 Logic이 변경되는 경우 테스트 코드 등 참조하는 클래스에서 Logic이 변경되어야 하는 부분이 발생할수있다.
    --> Validation 라는 부분은 변화가 있어서는 안되고 일관적이어야 되고 작성된다고하면 비즈니스 로직이 들어가면 안된다.

변수에다가 annotation 붙이면됨

@Size문자 길이 측정Int Type불가
@NotNullnull 불가
@NotEmptynull,""불가
@NotBlanknull,""," " 불가
@Past과거 날짜
@PastOrPresent오늘이거나 과거 날짜
@Future미래날짜
@FutureOrPresent오늘이거나 미래날짜
@Pattern정규식 적용
@Max최대값
@Min최소값
@AssertTure/False별도 Logic적용
@Valid해당 Object validation 실행

1.gradle dependecies
implementation("org.springframework.boot:spring-boot-starter-validation")

2.bean validation spec
https://beanvalidation.org/2.0-jsr380/

3.핸드폰번호 정규식
"^\d{2,3}-\d{3,4}-\d{4}$"

Custom Validation

  1. AssertTrue/False 와 같은 method 지정을 통해서 Custom Logic 적용 가능
  2. ConstraintValidator 를 적용하여 재사용이 가능한 Custom Logic 적용가능
profile
백엔드

0개의 댓글