Bean
Общее описание
Блок Bean привязывает bean-компоненты Java к обмену сообщениями, расширяя функциональность платформы за счет реализации пользовательской логики.
Настройка блока
В данном разделе описаны параметры блока Bean, которые необходимо заполнить при его настройке.
Базовые параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Ref | ref | Ссылка на bean в реестре. | Строка | |
| Method | method | Задает имя метода, который будет вызываться в компоненте. | Строка | |
| Bean Type | beanType | Полное имя класса bean, которое полностью и однозначно его определяет. | Строка | |
| Scope | scope | Схемы работы бинов приведены ниже:
| Singleton | Список |
Расширенные параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| 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.