타입 컨버터란?#
HTTP 요청 파라미터는 모두 문자로 처리함
Integer intvalue = Integer.valueOf(data)로 숫자로 변환해야됨
스프링의 RequestParam을 사용하면 쉽게 타입을 변환해서 받을 수 있음
(@RequestParam Integer data)
스프링은 컨버터 인터페이스 를 사용해서 이를 가능하게 한다.
org.springframework.core.convert.converter.Converter를 구현해서 사용가능
컨버전 서비스#
스프링이 제공하는, 개별 컨버터를 모아두고 묶어서 사용하는 기능
인터페이스 분리 원칙 ISP (Interface Segregation Principal) 클라이언트는 자신이 이용하지 앟는 메서드에 의존하지 않아야 한다 한마디로, 꼭 필요한 것만 알면 됨
스프링은 내부에서 ConversionSercie를 사용해서 @RequestParam 등을 구현
타임리프에서 {...}는 컨버터 적용 x, {{...}}는 컨버터 적용 O
뷰 템플릿은 무조건 데이터를 문자로 출력
포멧터#
객체를 특정한 포멧에 맞추어 문자로 출력하거나, 그 반대의 역활 수행
Converter VS Converter
Converter는 범용 (객체->객체)Formatter는 문자에 특화 (Converter의 특별버전)
Formatter 인터페이스
String print(T object, Locale locale): 객체->문자T parse(String text, Locale locale): 문자->객체
스프링이 제공하는 기본 포멧터#
@NumberFormatter: 숫자 관련@DateTimeFormat: 날짜 관련
주의
HttpMessageConverter 에서는 컨버전 서비스 사용 못함