Last updated
Last updated
타입 변환 논리를 구현하는 SPI는 다음 인터페이스 정의에 표시된 것처럼 간단하고 강력한 타입입니다:
자신의 Converter를 만들려면 위의 Converter
인터페이스를 구현하면 됩니다. 매개 변수 S
는 변환되기 전의 타입이고 T
는 변환할 타입입니다. 위탁 배열이나 컬렉션 변환기가 등록되어 있는 경우에는(기본적으로 DefaultConversionService
가 처리함), S
컬렉션이나 배열을 T
배열 또는 컬렉션으로 변환해야 하는 경우 이러한 변환기를 투명하게 적용할 수도 있습니다.
convert(S)
를 호출할 때 source 인수는 null이 아니라는 것을 보장해야 합니다. 변환이 실패하면 Converter
는 검사되지 않은 Exception을 발생시킬 수 있습니다. 특히, IllegalArgumentException
을 던져 유효하지 않은 source 값을 보고해야 합니다. Converter
구현이 스레드로부터 안전한 지 확인하십시오.
편리한 여러 개의 Converter 구현체가 core.convert.support
패키지에서 제공됩니다. 여기에는 문자열을 숫자나 다른 일반적인 타입으로 변환하는 Converter가 포함되어 있습니다. 다음은 일반적인 Converter
구현의 예제로 StringToInteger
클래스를 보여줍니다.
Converter 인터페이스에서 구현해야 할 메소드는 convert() 메소드 하나이다. 즉 PropertyEditor와는 달리 단방향 타입 변환만 제공한다. 'S'에는 변환 전인 Source 타입을 명시하고, 'T'에는 변환 할 Target 타입을 명시한다. Converter 객체가 변환과 관련된 상태 값을 저장하지 않기 때문에 Converter를 Singlton Bean으로 등록하여 Multi-thread 환경에서도 안전하게 사용할 수 있다.