<settings>
<servers>
<server>
<id>kamundarf-nexus</id>
<username>YOUR_USERNAME</username>
<password>YOUR_PASSWORD</password>
</server>
</servers>
</settings>
Камунда.РФ 7 в Spring Boot приложении
Введение
В данной инструкции описан процесс создания нового пустого Spring Boot приложения, которое при запуске автоматически поднимает Камунда.РФ 7 (Spring Boot) с использованием embedded базы данных H2.
Камунда.РФ 7 подключается как зависимость, опубликованная в корпоративном Nexus-репозитории.
Инструкция ориентирована на локальный запуск разработчиком.
Предварительные требования
-
Java 17+
-
Maven 3.8+
-
Доступ к корпоративному Nexus:
-
Maven-репозиторию
-
Создание Spring Boot проекта
Создайте новый Spring Boot проект любым удобным способом (Spring Initializr, IDEA, вручную).
Минимальные параметры:
-
Project: Maven
-
Language: Java
-
Spring Boot: 3.x
-
Packaging:
jar
Настройка доступа к Nexus (Maven)
Для загрузки зависимостей Камунда.РФ 7 из Nexus необходимо настроить аутентификацию Maven.
Откройте файл ~/.m2/settings.xml и добавьте:
Далее подключите репозиторий в pom.xml:
<repositories>
<repository>
<id>kamundarf-nexus</id>
<url>https://nexus.boos.solutions/repository/kamundarf-mvn/</url>
</repository>
</repositories>
Подключение Камунда.РФ 7
Добавьте зависимости Камунда.РФ 7 в pom.xml.
<dependencies>
<!-- Содержит ядро BPMN, ProcessEngine, сервисы (RuntimeService, TaskService и др.) -->
<dependency>
<groupId>rf.kamunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter</artifactId>
<version>${kamundarf.version}</version>
</dependency>
<!-- REST API: RESTful эндпоинты для взаимодействия с движком через HTTP -->
<dependency>
<groupId>rf.kamunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
<version>${kamundarf.version}</version>
</dependency>
<!-- Веб-интерфейсы - Cockpit (мониторинг), Tasklist (задачи), Admin (управление) -->
<dependency>
<groupId>rf.kamunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
<version>${kamundarf.version}</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
</dependencies>
После этого нужно сконфигурировать Камунда.РФ 7 в файле application.yml и Камунда.РФ 7 будет автоматически сконфигурирована и поднята при старте приложения.
Минимальная конфигурация application.yml
Камунда.РФ 7 будет использовать embedded/in-memory H2 базу данных. Это удобно для локальной разработки и тестирования.
server:
port: 8080
spring:
datasource:
url: jdbc:h2:mem:process-engine;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
driver-class-name: org.h2.Driver
username: sa
password: sa
h2:
console:
enabled: true
path: /h2-console
camunda:
bpm:
history-level: full
admin-user:
id: demo
password: demo
firstName: Demo
filter:
create: All tasks
database:
schema-update: true
Запуск приложения
Локальный запуск:
mvn spring-boot:run
Или:
mvn clean package
java -jar target/camunda-demo.jar
В логах должно появиться сообщение об успешном запуске Process Engine.
После запуска:
-
Веб-интерфейс приложения будет доступен по адресу:
http://localhost:8080/camunda -
Логин:
demo -
Пароль:
demo
Использование других баз данных
Камунда.РФ 7 поддерживает различные СУБД:
-
PostgreSQL
-
H2
-
MySQL / MariaDB
-
Oracle
-
MSSQL
-
DB2
Для смены базы данных необходимо:
-
Подключить JDBC-драйвер в
pom.xml -
Изменить
spring.datasource.* -
Указать тип БД
Пример для PostgreSQL:
spring:
datasource:
url: jdbc:postgresql://localhost:5432/camunda
username: camunda
password: camunda
driver-class-name: org.postgresql.Driver
camunda:
bpm:
database:
type: postgres
schema-update: true
Основные свойства Камунда.РФ 7 в application.yml
Ниже перечислены основные параметры конфигурации Камунда.РФ 7, которые чаще всего используются в Spring Boot приложениях.
Базовый префикс
Все свойства Камунда.РФ 7 настраиваются через префикс:
camunda:
bpm:
Настройки базы данных
camunda:
bpm:
database:
type: h2 # Тип БД: h2 | postgres | mysql | oracle | mssql
schema-update: true # true | false | create | drop-create
| Свойство | Описание |
|---|---|
|
Тип используемой базы данных |
|
Управление схемой БД ( |
Администратор Камунда.РФ 7
Создание технического пользователя при старте приложения.
camunda:
bpm:
admin-user:
id: admin
password: admin
first-name: Admin
last-name: User
email: admin@example.com
| Свойство | Описание |
|---|---|
|
Логин администратора |
|
Пароль администратора |
|
Имя |
|
Фамилия |
|
Email (необязательно) |
Web-приложение Камунда.РФ 7
camunda:
bpm:
webapp:
application-path: /camunda
| Свойство | Описание |
|---|---|
|
Контекст Камунда.РФ 7 Web App |
История и аудит
camunda:
bpm:
history-level: full # none | activity | audit | full
| Свойство | Описание |
|---|---|
|
Уровень сохранения исторических данных |
Job Executor (фоновые джобы)
camunda:
bpm:
job-execution:
enabled: true
core-pool-size: 3
max-pool-size: 10
| Свойство | Описание |
|---|---|
|
Включение Job Executor |
|
Базовое количество потоков |
|
Максимальное количество потоков |
Авторизация и безопасность
camunda:
bpm:
authorization:
enabled: true
| Свойство | Описание |
|---|---|
|
Включение авторизации Камунда.РФ 7 |
Метрики
camunda:
bpm:
metrics:
enabled: true
db-reporter-activate: true
| Свойство | Описание |
|---|---|
|
Сбор метрик движка |
|
Сбор метрик в БД |
Полный минимальный пример
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.8</version>
</parent>
<groupId>org.example</groupId>
<artifactId>camunda-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>camunda-demo</name>
<description>camunda-demo</description>
<properties>
<java.version>21</java.version>
<kamundarf.version>1.0.0-SNAPSHOT</kamundarf.version>
</properties>
<repositories>
<repository>
<id>company-nexus</id>
<url>https://nexus.boos.solutions/repository/kamundarf-mvn/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>rf.kamunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
<version>${kamundarf.version}</version>
</dependency>
<dependency>
<groupId>rf.kamunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
<version>${kamundarf.version}</version>
</dependency>
<dependency>
<groupId>rf.kamunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter</artifactId>
<version>${kamundarf.version}</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
application.yml
camunda:
bpm:
database:
type: h2
schema-update: true
admin-user:
id: admin
password: admin
history-level: full
webapp:
application-path: /camunda
Архив с примером приложения Скачать ZIP
Итог
В результате получаем:
-
Пустой Spring Boot проект
-
Камунда.РФ 7, поднимающуюся автоматически при старте
-
Embedded H2 для локальной разработки
-
Возможность легко переключиться на любую поддерживаемую БД