Apache Camel Data Format против конвертера типов - PullRequest
0 голосов
/ 04 декабря 2018

Я прочитал книгу «Верблюд», но не могу понять, как различать эти два, они выглядят одинаково, и оба пытаются преобразовать один тип данных в другой.Кто-нибудь может дополнительно уточнить, в какой ситуации мне следует использовать конкретные один над другим?И какая разница между этими двумя?

Формат данных

http://camel.apache.org/data-format.html

Псевдо-пример:

from("file://riders/inbox")
.marshal().csv()
.to("activemq:queue:inbox");

Тип преобразователя

http://camel.apache.org/type-converter.html

Псевдо пример:

from("file://riders/inbox")
.convertBodyTo(String.class)
.to("activemq:queue:inbox");

1 Ответ

0 голосов
/ 04 декабря 2018

Camel поддерживает различные форматы данных подключаемым способом.Это означает, что Camel может маршалировать или отменять маршалинг сообщения в заданном формате.Camel изначально поддерживает Avro, JSON, protobuf, JAXB, XmlBeans, XStream, JiBX, SOAP и т. Д.

Camel знает ожидаемый формат и тип конечных точек, для этого верблюд ищет преобразователь типов, который может преобразовыватьсообщение от одного типа к другому. Вы даже можете использовать свой собственный преобразователь типов, например класс POJO.

В приведенном ниже примере .convertBodyTO сначала преобразуйте поток в строку, мы также можем изменить кодировку потокаустановив параметр charset.

пример -

from("file://riders/inbox")
.convertBodyTo(String.class,"UTF-8")
.to("activemq:queue:inbox");

.marshal().csv() маршелирует его в формат строки CSV

Вы можете использовать формат данных, когда вам нужно преобразовать ваше сообщение в определенные типы данных, такие как JSON,YAML,JAXB, но вы не можете использовать DataFormat для преобразования вашего сообщения в определенный пользователем тип данных.

...