3.5.3 FormatterRegistry SPI

FormatterRegistry는 Formatter와 Converter를 등록하는 SPI입니다. FormattingConversionService는 대부분의 환경에 적합한 FormatterRegistry의 구현입니다. 이 변형을 FormattingConversionServiceFactoryBean을 사용하여 스프링 빈처럼 프로그래밍 방식으로 또는 선언적으로 구성할 수 있습니다. 이 구현은 ConversionService도 구현하기 때문에 스프링의 DataBinder와Expression Language (SpEL)와 함께 사용하도록 직접 구성할 수 있습니다.

다음 목록은 FormatterRegistrySPI를 보여줍니다.

package org.springframework.format;

public interface FormatterRegistry extends ConverterRegistry {

    void addFormatterForFieldType(Class<?> fieldType, Printer<?> printer, Parser<?> parser);

    void addFormatterForFieldType(Class<?> fieldType, Formatter<?> formatter);

    void addFormatterForFieldType(Formatter<?> formatter);

    void addFormatterForAnnotation(AnnotationFormatterFactory<?, ?> factory);
}

앞의 목록에서 볼 수 있듯이 Formatter를 필드 타입 또는 어노테이션으로 등록할 수 있습니다.

FormatterRegistrySPI를 사용하면 컨트롤러에서 이러한 구성을 복제하는 대신 Formatting 규칙을 중앙에서 구성할 수 있습니다. 예를 들어, 모든 날짜 필드가 특정 방식으로 포맷 화 되거나 특정 어노테이션이 있는 필드가 특정 방식으로 지정되도록 설정할 수 있습니다. 공유된 FormatterRegistry로 이러한 규칙을 한 번 정의할 수 있으며 포맷팅이 필요할 때마다 적용됩니다.

Last updated