Bean
Общее описание
Компонент Bean связывает beans с обменом сообщениями Camel.
Настройка блока
В данном разделе описаны параметры блока Bean, которые необходимо заполнить при настройке и примеры заполнения значений этих параметров.
Базовые параметры блока Bean
| Название в UI | Название атрибута | Обязательный | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|---|
| Ref | ref | Ссылка на bean в реестре. | Строка | ||
| Method | method | Задает имя метода, который будет вызываться в компоненте. | Строка | ||
| Bean Type | beanType | Полное имя класса bean, которое полностью и однозначно его определяет. | Строка | ||
| Scope | scope | Схемы работы бинов приведены ниже: При использовании типа Singleton бин создается или находится только один раз и используется повторно в течение всего срока жизни конечной точки. Бин должен быть потокобезопасным на случай, если параллельные потоки одновременно вызывают компонент. При использовании типа Request бин создается или находится один раз за запрос (exchange). Это можно использовать, если вы хотите сохранить состояние бина во время обработки запроса и хотите вызывать один и тот же экземпляр бина несколько раз во время обработки запроса. Бин не обязательно должен быть потокобезопасным, поскольку экземпляр вызывается только из одного и того же запроса. При использовании Prototype бин будет найден или создан для каждого вызова. Однако в случае поиска поведение зависит от реестра бинов, такого как Spring или CDI (если используется), который в зависимости от конфигурации может выступать либо как Singleton, либо как Prototype. Возможные значения:
| Singleton | Список | |
Расширенные параметры блока Bean
| Название | Название | Обязательный | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|---|
| Disabled | disabled | Определяет будет ли отключен блок в потоке. В активированном потоке функциональность блока не будет отрабатываться. | False | Логическое значение |
Подключение сторонней библиотеки для компонента Bean
Чтобы загрузить стороннюю библиотеку для компонента Bean, необходимо, чтобы был создан стандартный Java проект с Maven или Gradle.
Выполните следующие шаги:
- Добавьте в проект необходимые классы, из которых будут созданы бины.
Пример минимальной реализации класса, осуществляющего логирование факта вызова метода, приведен ниже:
package com.test.beans;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TestBean {
Logger logger = LoggerFactory.getLogger(TestBean.class);
public void test() {
logger.info("Body changed by custom bean");
}
}
- Если необходимо взаимодействие с Exchange, то в POM файл нужно добавить зависимость, как показано ниже в примере для maven:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>4.13.0</version>
</dependency>
- Затем в параметры метода следует передать Exchange, класс который изменяет body объекта:
package com.test.beans;
import org.apache.camel.Exchange;
public class TestBean {
public void test(Exchange exchange) {
exchange.getMessage().setBody("Body changed by custom bean");
}
}
-
Соберите проект стандартными средствами Maven или Gradle. В результате будет сгенерирован JAR файл , содержащий скомпилированные классы.
-
Разместите JAR файл в томе Core-контейнера, настроив маппинг тома на внутреннюю директорию контейнера /app/libs.
-
Перезапустите контейнер Core.