Class
Поддерживается только производитель
Компонент «Класс» привязывает бины к сообщениям Camel. Он работает так же, как компонент Bean , но вместо поиска бинов в реестре он создаёт бин на основе имени класса.
URI format
class:className[?options]
Где classNameнаходится полное имя класса для создания и использования в качестве компонента.
Configuring Options
Компоненты Camel настраиваются на двух отдельных уровнях:
-
уровень компонентов
-
уровень конечной точки
Configuring Component Options
На уровне компонентов задаются общие и общие конфигурации, которые затем наследуются конечными точками. Это самый высокий уровень конфигурации.
Например, компонент может иметь настройки безопасности, учетные данные для аутентификации, URL-адреса для сетевого подключения и т. д.
У некоторых компонентов всего несколько параметров, а у других -- много. Поскольку компоненты обычно имеют предустановленные значения по умолчанию, которые широко используются, зачастую вам может потребоваться настроить лишь несколько параметров компонента, а то и вовсе ни одного.
Вы можете настроить компоненты, используя:
-
Компонент DSL (opens in a new tab) .
-
в файле конфигурации (
application.propertiesфайлы*.yaml, и т.д.). -
непосредственно в коде Java.
Configuring Endpoint Options
Настройка конечных точек обычно занимает больше времени, поскольку у них есть множество параметров. Эти параметры помогают вам настроить функции конечной точки. Параметры также классифицируются по тому, используется ли конечная точка как потребитель ( от ), как производитель ( от ) или и то, и другое.
Конечные точки чаще всего настраиваются непосредственно в URI конечной точки в виде параметров пути и запроса . Вы также можете использовать Endpoint DSL (opens in a new tab) и DataFormat DSL (opens in a new tab) в качестве типобезопасного способа настройки конечных точек и форматов данных в Java.
Хорошей практикой при настройке параметров является использование заполнителей свойств (opens in a new tab) .
Заполнители свойств обеспечивают несколько преимуществ:
-
Они помогают предотвратить использование жестко запрограммированных URL-адресов, номеров портов, конфиденциальной информации и других настроек.
-
Они позволяют вынести конфигурацию за пределы кода.
-
Они помогают коду стать более гибким и пригодным для повторного использования.
В следующих двух разделах перечислены все параметры, сначала для компонента, а затем для конечной точки.
Component Options
Компонент Class поддерживает 4 параметра, которые перечислены ниже.
lazyStartProducer (producer)
-
Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.
-
По умолчанию: false
-
Тип: boolean
scope (producer)
-
Область действия бина. При использовании области действия singleton (по умолчанию) бин создается или ищется только один раз и используется повторно в течение всего жизненного цикла конечной точки. Бин должен быть потокобезопасным в случае, если параллельные потоки вызывают его одновременно. При использовании области действия request бин создается или ищется один раз за запрос (обмен). Это можно использовать, если вы хотите сохранить состояние бина при обработке запроса и хотите вызывать один и тот же экземпляр бина несколько раз при обработке запроса. Бин не обязательно должен быть потокобезопасным, так как экземпляр вызывается только из одного запроса. При использовании области действия delegate бин будет искаться или создаваться при каждом вызове. Однако в случае поиска это делегируется реестру бинов, такому как Spring или CDI (если используется), который в зависимости от их конфигурации может действовать как синглтон или прототип области действия. поэтому при использовании прототипа это зависит от делегированного реестра.
Значения перечисления:
-
Singleton
-
Request
-
Prototype
-
-
По умолчанию: Singleton
-
Тип: BeanScope
autowiredEnabled (advanced)
-
Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.
-
По умолчанию: true
-
Тип: boolean
beanInfoCacheSize (advanced)
-
Максимальный размер внутреннего кэша для интроспекции компонентов. Установка значения 0 или отрицательного значения отключит кэш.
-
По умолчанию: 1000
-
Тип: int
Endpoint Options
Конечная точка класса настраивается с использованием синтаксиса URI:
class:beanName
Со следующими параметрами пути и запроса :
Path Parameters (1 parameters)
beanName (common)
-
Обязательно Задает имя вызываемого компонента.
-
По умолчанию:
-
Тип: String
Query Parameters (4 parameters)
-
Тип: method (common)
-
Задает имя метода, вызываемого для компонента.
-
String
scope (common)
-
Область действия бина. При использовании области действия singleton (по умолчанию) бин создается или ищется только один раз и повторно используется в течение всего жизненного цикла конечной точки. Бин должен быть потокобезопасным в случае, если параллельные потоки вызывают бин в одно и то же время. При использовании области действия request бин создается или ищется один раз за запрос (обмен). Это можно использовать, если вы хотите сохранить состояние бина во время обработки запроса и хотите вызывать один и тот же экземпляр бина несколько раз во время обработки запроса. Бин не обязательно должен быть потокобезопасным, так как экземпляр вызывается только из одного запроса. При использовании области действия prototype бин будет искаться или создаваться при каждом вызове. Однако в случае поиска это делегируется реестру бинов, такому как Spring или CDI (если используется), который в зависимости от их конфигурации может действовать как синглтон или как область действия prototype. поэтому при использовании prototype это зависит от делегированного реестра.
Значения перечисления:
-
Singleton
-
Request
-
Prototype
-
-
По умолчанию: Singleton
-
Тип: BeanScope
lazyStartProducer (producer (advanced))
-
Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.
-
По умолчанию: false
-
Тип: boolean
parameters (advanced)
-
Используется для настройки дополнительных свойств компонента. Это многозначный параметр с префиксом: bean.
-
По умолчанию:
-
Тип: Map
Usage
Вы просто используете компонент class так же, как компонент Bean (opens in a new tab) , но указывая полное имя класса. Например, чтобы использовать , MyFooBeanнеобходимо сделать следующее:
from("direct:start")
.to("class:org.apache.camel.component.bean.MyFooBean")
.to("mock:result");Вы также можете указать, какой метод следует вызвать MyFooBean, например hello:
from("direct:start")
.to("class:org.apache.camel.component.bean.MyFooBean?method=hello")
.to("mock:result");Examples
Setting properties on the created instance
В URI конечной точки можно указать свойства, которые необходимо установить для созданного экземпляра, например, если у него есть setPrefixметод:
from("direct:start")
.to("class:org.apache.camel.component.bean.MyPrefixBean?bean.prefix=Bye")
.to("mock:result");Вы также можете использовать этот #синтаксис для ссылки на свойства, которые нужно искать в реестре.
from("direct:start")
.to("class:org.apache.camel.component.bean.MyPrefixBean?bean.cool=#foo")
.to("mock:result");Который найдет компонент в реестре по идентификатору fooи вызовет setCoolметод для созданного экземпляра класса MyPrefixBean.
- Тип: * Более подробную информацию см. в компоненте Bean (opens in a new tab) , так как компонент class работает во многом таким же образом.
Spring Boot Auto-Configuration
При использовании класса с Spring Boot обязательно используйте следующую зависимость Maven для поддержки автоматической настройки:
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-bean-starter</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>Компонент поддерживает 14 опций, которые перечислены ниже.
camel.component.bean.autowired-enabled
-
Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.
-
По умолчанию: true
-
Тип: Boolean
camel.component.bean.bean-info-cache-size
-
Максимальный размер внутреннего кэша для интроспекции компонентов. Установка значения 0 или отрицательного значения отключит кэш.
-
По умолчанию: 1000
-
Тип: Integer
camel.component.bean.enabled
-
Включить ли автоматическую настройку компонента Bean. По умолчанию эта функция включена.
-
По умолчанию:
-
Тип: Boolean
-
Тип: camel.component.bean.lazy-start-producer
-
Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.
-
false
-
Boolean
camel.component.bean.scope
-
Область действия бина. При использовании области действия singleton (по умолчанию) бин создается или ищется только один раз и используется повторно в течение всего жизненного цикла конечной точки. Бин должен быть потокобезопасным в случае, если параллельные потоки вызывают его одновременно. При использовании области действия request бин создается или ищется один раз за запрос (обмен). Это можно использовать, если вы хотите сохранить состояние бина при обработке запроса и хотите вызывать один и тот же экземпляр бина несколько раз при обработке запроса. Бин не обязательно должен быть потокобезопасным, так как экземпляр вызывается только из одного запроса. При использовании области действия delegate бин будет искаться или создаваться при каждом вызове. Однако в случае поиска это делегируется реестру бинов, такому как Spring или CDI (если используется), который в зависимости от их конфигурации может действовать как синглтон или прототип области действия. поэтому при использовании прототипа это зависит от делегированного реестра.
-
По умолчанию: singleton
-
Тип: BeanScope
camel.component.class.autowired-enabled
-
Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.
-
По умолчанию: true
-
Тип: Boolean
camel.component.class.bean-info-cache-size
-
Максимальный размер внутреннего кэша для интроспекции компонентов. Установка значения 0 или отрицательного значения отключит кэш.
-
По умолчанию: 1000
-
Тип: Integer
camel.component.class.enabled
-
Включить ли автоматическую настройку компонента класса. По умолчанию эта опция включена.
-
По умолчанию:
-
Тип: Boolean
-
Тип: camel.component.class.lazy-start-producer
-
Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.
-
false
-
Boolean
camel.component.class.scope
-
Область действия бина. При использовании области действия singleton (по умолчанию) бин создается или ищется только один раз и используется повторно в течение всего жизненного цикла конечной точки. Бин должен быть потокобезопасным в случае, если параллельные потоки вызывают его одновременно. При использовании области действия request бин создается или ищется один раз за запрос (обмен). Это можно использовать, если вы хотите сохранить состояние бина при обработке запроса и хотите вызывать один и тот же экземпляр бина несколько раз при обработке запроса. Бин не обязательно должен быть потокобезопасным, так как экземпляр вызывается только из одного запроса. При использовании области действия delegate бин будет искаться или создаваться при каждом вызове. Однако в случае поиска это делегируется реестру бинов, такому как Spring или CDI (если используется), который в зависимости от их конфигурации может действовать как синглтон или прототип области действия. поэтому при использовании прототипа это зависит от делегированного реестра.
-
По умолчанию: singleton
-
Тип: BeanScope
camel.language.bean.enabled
-
Включить ли автоматическую настройку языка компонента. По умолчанию эта функция включена.
-
По умолчанию:
-
Тип: Boolean
-
Тип: camel.language.bean.scope
-
Область действия бина. При использовании области действия singleton (по умолчанию) бин создается или ищется только один раз и используется повторно в течение всего жизненного цикла конечной точки. Бин должен быть потокобезопасным в случае, если параллельные потоки вызывают бин в одно и то же время. При использовании области действия request бин создается или ищется один раз за запрос (обмен). Это можно использовать, если вы хотите сохранить состояние бина во время обработки запроса и хотите вызывать один и тот же экземпляр бина несколько раз во время обработки запроса. Бин не обязательно должен быть потокобезопасным, так как экземпляр вызывается только из одного запроса. При использовании области действия prototype бин будет искаться или создаваться при каждом вызове. Однако в случае поиска это делегируется реестру бинов, такому как Spring или CDI (если используется), который в зависимости от их конфигурации может действовать как синглтон или как область действия prototype. Таким образом, при использовании области действия prototype это зависит от реализации реестра бинов.
-
Singleton
-
String
camel.language.bean.trim
-
Следует ли обрезать значение, чтобы удалить начальные и конечные пробелы, а также переносы строк.
-
По умолчанию: true
-
Тип: Boolean
camel.language.bean.validate
-
Проверять, имеет ли компонент настроенный метод.
-
По умолчанию: true
-
Тип: Boolean