3.4.4 ConversionService API

ConversionService는 런타임에 타입 변환 로직을를 실행하기 위한 통합 API를 정의합니다. Converter는 종종 다음과 같은 외관 인터페이스 뒤에 실행됩니다.

package org.springframework.core.convert;

public interface ConversionService {

    boolean canConvert(Class<?> sourceType, Class<?> targetType);

    <T> T convert(Object source, Class<T> targetType);

    boolean canConvert(TypeDescriptor sourceType, TypeDescriptor targetType);

    Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType);

}

대부분의 ConversionService구현은 Converter를 등록하기 위한 SPI를 제공하는 ConverterRegistry도 구현합니다. 내부적으로, ConversionService구현은 등록된 Converter에 위임하여 타입 변환 로직을 수행합니다.

강력한 ConversionService구현체는 core.convert.support 패키지에서 제공됩니다. GenericConversionService는 대부분의 환경에서 사용하기에 적합한 범용 구현입니다. ConversionServiceFactory는 일반적인 ConversionService구성을 작성하기 위해 편리한 팩토리를 제공합니다.

ConversionService : 여러 종류의 컨버터를 이용해서 하나 이상의 타입 변환 서비스를 제공해주는 오브젝트를 만들 때 사용하는 인터페이스다. 보통 ConversionService 를 구현한 GenericConversionService 클래스를 빈으로 등록해서 사용하면 된다.

사용자 필요에 의해서 추가로 개발한 Custom Converter들을 사용하려면 Converter도 역시 PropertyEditor처럼 등록이 필요하다. 한가지 다른 점은 각각의 Converter를 개별적으로 등록하는 것이 아니라, 모든 Converter를 가지고 변환 작업을 처리하는 ConversionService를 Bean으로 등록한 후, ConversionService Bean을 필요한 곳에서 Inject 받아서 사용한다는 것이다.

Last updated