Camunda与Spring Boot集成(2)--Process Engine 配置

自动启动器使用org.camunda.bpm.engine.impl.cfg.ProcessEnginePlugin机制来配置引擎。

配置分为几个部分。 这些部分由标记接口表示:

  • org.camunda.bpm.spring.boot.starter.configuration.CamundaProcessEngineConfiguration
  • org.camunda.bpm.spring.boot.starter.configuration.CamundaDatasourceConfiguration
  • org.camunda.bpm.spring.boot.starter.configuration.CamundaHistoryConfiguration
  • org.camunda.bpm.spring.boot.starter.configuration.CamundaHistoryLevelAutoHandlingConfiguration
  • org.camunda.bpm.spring.boot.starter.configuration.CamundaJobConfiguration
  • org.camunda.bpm.spring.boot.starter.configuration.CamundaDeploymentConfiguration
  • org.camunda.bpm.spring.boot.starter.configuration.CamundaJpaConfiguration
  • org.camunda.bpm.spring.boot.starter.configuration.CamundaAuthorizationConfiguration
  • org.camunda.bpm.spring.boot.starter.configuration.CamundaFailedJobConfiguration
  • org.camunda.bpm.spring.boot.starter.configuration.CamundaMetricsConfiguration

 

一、默认配置

启动器提供了以下默认和最佳实践配置,可以对其进行自定义或覆盖。

1.DefaultProcessEngineConfiguration

设置流程引擎名称,并自动将所有ProcessEnginePlugin Bean添加到配置中。

2.DefaultDatasourceConfiguration

配置Camunda数据源并启用事务集成。 默认情况下,主DataSource和PlatformTransactionManager Bean与流程引擎配置关联。

如果您要配置多个数据源,并且不想在流程引擎中使用@Primary数据源,则可以创建一个名称为camundaBpmDataSource的单独数据源,该数据源将自动与Camunda连接。

@Bean
@Primary
@ConfigurationProperties(prefix="datasource.primary")
public DataSource primaryDataSource() {
  return DataSourceBuilder.create().build();
}

@Bean(name="camundaBpmDataSource")
@ConfigurationProperties(prefix="datasource.secondary")
public DataSource secondaryDataSource() {
  return DataSourceBuilder.create().build();
}

在这种情况下,请确保提供相应的事务管理器:

@Bean
public PlatformTransactionManager transactionManager(@Qualifier("camundaBpmDataSource") DataSource dataSource) {
  return new DataSourceTransactionManager(dataSource);
}

注意:wired数据源和事务管理器Bean必须匹配,即确保事务管理器实际管理Camunda数据源。 如果不是这种情况,则流程引擎将对数据源连接使用自动提交模式,从而可能导致数据库不一致。

 

3.DefaultHistoryConfiguration

将历史记录配置应用于流程引擎。 如果未配置,则使用历史记录级别FULL。 如果要使用自定义的HistoryEventHandler,则只需提供实现该接口的bean。

@Bean
public HistoryEventHandler customHistoryEventHandler() {
  return new CustomHistoryEventHanlder();
}

4.DefaultHistoryLevelAutoHandlingConfiguration

由于camunda版本> = 7.4支持历史级别的自动,因此此配置增加了对版本<= 7.3的支持。

要对处理进行更多控制,您可以提供自己的org.camunda.bpm.spring.boot.starter.jdbc.HistoryLevelDeterminator,名称为historyLevelDeterminator

重要说明:默认配置在使用排序机制的所有其他默认配置之后应用。

 

5.DefaultJobConfiguration

将作业执行属性应用于流程引擎。

要对执行本身进行更多控制,您可以提供自己的执行bean:

  • org.camunda.bpm.engine.impl.jobexecutor.JobExecutor
  • camundaTaskExecutor的org.springframework.core.task.TaskExecutor

重要说明:未在配置中启用作业执行程序。 这是在成功加载spring上下文之后完成的(请参阅org.camunda.bpm.spring.boot.starter.runlistener)。

 

6.DefaultDeploymentConfiguration

如果启用了自动部署(默认情况下是这种情况),则将部署在类路径中找到的所有进程。 可以使用属性来更改资源模式(请参阅属性)。

 

7.DefaultJpaConfiguration

如果启用了JPA并配置了entityManagerFactory bean,那么将启用流程引擎以使用JPA(请参阅属性)。

 

8.DefaultAuthorizationConfiguration

将授权配置应用于流程引擎。 如果未配置,则使用camunda默认值(请参阅属性)。

你可能感兴趣的:(Camunda)