포매터 등록
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addFormatter(new KoreanCurrencyFormatter());
}
}
FormattingConversionService
public void addFormatter(Formatter<?> formatter) {
this.addFormatterForFieldType(getFieldType(formatter), formatter);
}
getFieldType 을 통해 타겟 타입을 가져온다
그런데 실제로 보면 converter 두개를 등록한다
public void addFormatterForFieldType(Class<?> fieldType, Formatter<?> formatter) {
this.addConverter(new PrinterConverter(fieldType, formatter, this));
this.addConverter(new ParserConverter(fieldType, formatter, this));
}
formatter 는 결국 컨버터를 이용
초기화 시점에 두 개의 컨버터가 등록된다고 보면됨