데이터의 변환 인터페이스
PropertyEditor => 양방향 타입 변환(String → 타입, 타입 → String). 특정 타입이나 이름의 필드에 적용 가능.
※ 디폴트 PropertyEditor - 스프링이 기본적으로 제공
커스텀 PropertyEditor - 사용자가 직접 구현. PropertyEditorSupport 클래스를 상속받아 필요한 메서드를 오버라이딩 하면 편리함.
Converter => 단방향 타입 변환(타입 A → 타입 B). PropertyEditor의 단점 개선(stateful → stateless)
ConversionService => 타입 변환 서비스 제공. 여러 Converter를 등록 가능
Formatter => 양방향 타입 변환(String → 타입, 타입 → String). 바인딩 할 필드에 적용(@NumberFormat, @DateTimeFormat)
우선 순위는 다음과 같다.
1. 커스텀 PropertyEditor
2. ConversionService
3. 디폴트 PropertyEditor
데이터의 검증 인터페이스
Validator => 객체를 검증하기 위한 인터페이스.
ㆍboolean supports() - 검증 가능한 객체인지 알려주는 메서드
ㆍvoid validate(Object target, Errors errors) - target은 검증 할 객체이고, errors는 검증 시 발생한 에러저장소를 의미.
방식은 수동 검증과 자동 검증으로 나뉘게 되고, 이때 자동 검증의 경우 @InitBinder를 이용한다. @InitBinder는 특정 컨트롤러 내에서만 동작한다. 만약 하나의 Validator로 여러 객체를 검증하고 싶을 때에는 글로벌 Validator로 등록해야 한다. servlet-context.xml에 빈(bean)으로 등록하고 그 빈을 validator 속성으로 지정해준다.
MessageSource => 다양한 리소스(파일, 배열 등)에서 메시지를 읽기 위한 인터페이스. servlet-context.xml에 프로퍼티 파일을 메시지 소스로 하는 ResourceBundleMessageSource를 빈으로 등록한다.
'[패스트캠퍼스] 스프링의정석 정리 > Spring' 카테고리의 다른 글
스프링 DI 이론 - IoC와 DI (0) | 2023.05.18 |
---|---|
스프링 DI 흉내내기 (0) | 2023.05.17 |
DispatcherServlet 정리 (1) | 2023.05.17 |
스프링에서의 예외 처리 핵심 정리 (0) | 2023.05.17 |
@RequestParam과 @ModelAttribute (0) | 2023.05.14 |