自动启动器使用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默认值(请参阅属性)。