376장. YAML SnakeYAML DataFormat

Camel 버전 2.17로 사용 가능

YAML 은 YAML로 마샬링 및 unmarshal Java 오브젝트를 마샬링하는 데이터 형식입니다.

YAML에서 오브젝트 마샬링으로의 경우 Camel은 세 가지 주요 YAML 라이브러리와의 통합을 제공합니다.

모든 라이브러리는 특수 camel 구성 요소를 추가해야 합니다. 자세한 내용은 "Dependency…​" 단락을 참조하십시오. 기본적으로 Camel은 SnakeYAML 라이브러리를 사용합니다.

376.1. YAML 옵션

YAML SnakeYAML dataformat은 아래에 나열된 11가지 옵션을 지원합니다.

이름기본값Java Type설명

라이브러리

SnakeYAML

YAML Library

사용할 yaml 라이브러리는 무엇입니까. 기본값은 SnakeYAML입니다.

unmarshalTypeName

 

문자열

armshalling할 때 사용할 Java 유형의 클래스 이름

constructor

 

문자열

들어오는 문서를 구성하는 BaseConstructor입니다.

representer

 

문자열

나가는 오브젝트를 내보내는 담당자입니다.

dumperOptions

 

문자열

DumperOptions를 사용하여 발신 오브젝트를 구성합니다.

resolver

 

문자열

암시적 유형 탐지기

useApplicationContextClassLoader

true

부울

ApplicationContextClassLoader를 사용자 정의 ClassLoader로 사용

prettyFlow

false

부울

흐름 스타일을 사용할 때 에미터가 YAML 문서를 생성하도록 강제 적용합니다.

allowAnyType

false

부울

모든 클래스가 분리되지 않도록 허용

typeFilter

 

list

SnakeYAML을 un-marshall로 설정할 수 있습니다.

contentTypeHeader

false

부울

데이터 형식이 데이터 형식에서 수행할 수 있는 경우 데이터 형식의 유형으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식을 XML로 마샬링하거나, JSon으로 마샬링되는 데이터 형식에 대한 application/json 등이 있습니다.

주의

SnakeYAML은 YAML 정의에서 모든 클래스를 로드할 수 있으므로 기본적으로 보안 위반으로 이어질 수 있습니다. SnakeYAML DataForma는 List 또는 Long과 같은 표준 Java 개체에 로드할 수 있는 개체를 제한합니다. 사용자 지정 POJO를 로드하려면 SnakeYAML DataFormat 유형 필터 목록에 해당 유형을 추가해야 합니다. 소스를 신뢰할 수 있는 경우, allowAnyType을 true로 설정하여 SnakeYAML DataForma가 유형에 대한 모든 필터를 수행하지 않도록 할 수 있습니다.