34.3. 붙박임 유형

34.3.1. 개요

이 섹션에서는 마스터 유형 변환기에서 지원하는 변환에 대해 설명합니다. 이러한 변환은 Apache Camel 코어에 빌드됩니다.

일반적으로 유형 변환기는 Message.getBody(Class<T> 유형) 또는 Message.getHeader(String name, Class<T > 유형) 과 같은 편의성 함수를 통해 호출됩니다. 마스터 유형 변환기를 직접 호출할 수도 있습니다. 예를 들어 교환 오브젝트인 exchange 가 있는 경우 예 34.4. “값을 문자열로 변환” 에 표시된 대로 지정된 값을 String 으로 변환할 수 있습니다.

예 34.4. 값을 문자열로 변환

org.apache.camel.TypeConverter tc = exchange.getContext().getTypeConverter();
String str_value = tc.convertTo(String.class, value);

34.3.2. 기본 유형 변환기

Apache Camel은 다음 기본 유형으로의 변환을 수행하는 기본 제공 유형 변환기를 제공합니다.

  • java.io.File
  • 문자열
  • byte[] and java.nio.ByteBuffer
  • java.io.InputStreamjava.io.OutputStream
  • java.io. Cryo stat 및 java.io.Writer
  • java.io.BufferedReader and java.io.BufferedWriter
  • java.io.StringReader

그러나 이러한 유형의 모든 유형이 상호 작용 가능한 것은 아닙니다. 기본 제공 변환기는 주로 파일문자열 유형에서 변환을 제공하는 데 중점을 둡니다. File 유형은 Reader,Writer, String Cryostat를 제외한 모든 이전 유형으로 변환할 수 있습니다. String 유형은 File,byte[], Cryostat Buffer ,Input Stream 또는 String Cryostat로 변환할 수 있습니다. 문자열 을 파일 이름으로 해석하여 문자열을 File 으로 변환합니다. 문자열,byte[] 및 Cryostat Buffer 의 trio는 완전히 상호 호환 가능합니다.

참고

현재 교환에서 Exchange.CHARSET_NAME 교환 속성을 설정하여 바이트[] 에서 문자열로, 그리고 String 에서 byte[] 로 변환하는 데 사용할 문자 인코딩을 명시적으로 지정할 수 있습니다. 예를 들어 UTF-8 문자 인코딩을 사용하여 변환을 수행하려면 exchange.setProperty("Exchange.CHARSET_NAME", "UTF-8") 를 호출합니다. 지원되는 문자 세트는 java.nio.charset.Charset 클래스에 설명되어 있습니다.

34.3.3. 컬렉션 유형 변환기

Apache Camel은 다음 컬렉션 유형으로의 변환을 수행하는 기본 제공 유형 변환기를 제공합니다.

  • Object[]
  • java.util.Set
  • java.util.List

이전 컬렉션 유형 간의 모든 변환이 지원됩니다.

34.3.4. 매핑 유형 변환기

Apache Camel은 다음 맵 유형으로의 변환을 수행하는 기본 제공 유형 변환기를 제공합니다.

  • java.util.Map
  • java.util.HashMap
  • java.util.Hashtable
  • java.util.Properties

이전 맵 유형도 java.util.Set 유형의 세트로 변환할 수 있습니다. 여기서 set 요소는 MapEntry<K,V > 유형입니다.

34.3.5. Cryostat 유형 컨버터

다음과 같은 Document Object Model(DOM) 유형으로 형식 변환을 수행할 수 있습니다.

  • org.w3c.dom.Document kafka- Cryostat-Enginevertible from byte[], string,java.io.File, and java.io.InputStream.
  • org.w3c.dom.Node
  • 문자열 에서 javax.xml.transform.dom.DOMSource Cryostat-ECDHEvertible.
  • byte[]문자열 에서 javax.xml.transform.Source Cryostat-ECDHEconvertible.

이전 192.0.2. 유형 간의 모든 변환이 지원됩니다.

34.3.6. SAX 유형 변환기

SAX 이벤트 기반 XML 구문 분석을 지원하는 javax.xml.transform.sax.SAXSource 유형으로 변환을 수행할 수도 있습니다(자세한 내용은 SAX 웹 사이트 참조). 다음 유형에서 SAXSource 로 변환할 수 있습니다.

  • 문자열
  • InputStream
  • 소스
  • StreamSource
  • CryostatSource

34.3.7. enum 유형 변환기

Camel은 형식을 열거 하기 위해 문자열 을 수행하기 위한 형식 변환기를 제공합니다. 여기서 문자열 값은 지정된 열거 클래스에서 일치하는 enum 상수로 변환됩니다(정합은 대소문자를 구분하지 않음). 이 유형 변환기는 메시지 본문을 변환하는 데 거의 필요하지 않지만 Apache Camel에서 특정 옵션을 선택하는 데 자주 사용됩니다.

예를 들어 로깅 수준 옵션을 설정할 때 다음 값인 INFOenum 상수로 변환됩니다.

<to uri="log:foo?level=INFO"/>

enum 형식 변환기는 대소문자를 구분하지 않으므로 다음 대안도 작동합니다.Because the enum type converter is case-insensitive, any of the following alternatives would also work:

<to uri="log:foo?level=info"/>
<to uri="log:foo?level=INfo"/>
<to uri="log:foo?level=InFo"/>

34.3.8. 사용자 정의 유형 변환기

Apache Camel을 사용하면 사용자 정의 유형 변환기를 구현할 수 있습니다. 사용자 정의 유형 변환기를 구현하는 방법에 대한 자세한 내용은 36장. 유형 전환 을 참조하십시오.