Hyunebee

Valudation, Data Binding, SpEL 본문

zerebase/Spring

Valudation, Data Binding, SpEL

Hyunebee 2022. 6. 16. 13:12

Validation - 유효성 검증 

 주로 사용자 or 타 서버의 요청에 대해 잘못된 내용이 있는지 확인하는 행위

 

Validation

 1. 데이터 검증

  필수 데이터의 존재 유무, 값의 범위, 특정 형식 데이터 등

 

 2. 비지니스 검증

 서비스에 정책에 따라 데이터를 확인하여 검증 

 

 

Spring Validation

 스프링은 웹 레이어에 종속적이 지 않고 2가지 방법으로 진행 -> 둘다 데이터 검증에 가까움

 

 1.Java Bean Validation

  JavaBean 기반으로 간편하게 개별 데이터 검증 어노테이션으로 검증 방법을 명시해줌

위 사진 처럼 dto에 어노테이션에 명시후
아래 사진처럼 @Valid를 RequestBody에 달아 검증을하고 이상이 없을시 메서드 내부를 실행한다.

  2.Spring validator 인터페이스 구현을 통한 validation

 

 

support는 Validator가 동작할 조건을 정의해준다. 주로 class의 타입을 비교한다. validate()에서 원하는 검증을 진행

 

Data Binding

사용자나 외부 서버의 요청 데이터를 특정 도메인 객체에 저장해서 우리 프로그램에 Request에 담아주는 것을 뜻한다.

 

1.Converter<S,T> Interface

S(Source)라는 타입을 받아서 T(Target)이라는 타입으로 변환해주는 Interface

내부 구조
x-auth-user는 Json 형식의 문자열 @RequestHeader를 살펴보면 x-auth-user의 헤더를 XauthUser객체로 받을려고함 이때 아래 사진의 converter를 사용하게 됨
해당 컨버터는 Spring bean에 등록 -> 스프링 내에 ConversionService라는 내장된 서비스에서 Converter 구현체 Bean들을 Converter 리스트에 등록-> 이때 <S,T>가 일치하게 되면 해당 Convert가 동작

 

 

 2.Formatter

  특정 객체 ↔ String간의 변환을 담당

 

print : API 요청에 대한 응답을 줄 때, Date형식으로 된 데이터를 특정 locale에 맞춘 String으로 변환 parse : API 요청을 받아올 때, String으로 된 "2021-01-01 13:15:00" 같은 날짜 형식의 데 이터를 Date로 변환하도록 함

 

SpEL(스프링표현언어)

  스프링에서 주로 많이 활용되는 부분

  @Value("${config.value}")와 같은 방식으로 설정값을 주입 받는데 활용

  이떄 ""안에 들어있는 문자열을 평가해서 결과값을 만들어 낸다. 리터럴과 메서드도 같이 호출할 수 있다. 

예시

'zerebase > Spring' 카테고리의 다른 글

Lombok  (0) 2022.06.23
필터와 인터셉터  (0) 2022.06.16
스프링 MVC의 기본 HTTP요청 매핑  (0) 2022.06.16
OOP와 스프링  (0) 2022.06.10