Activiti7默认id的生成是使用UUID的方式,UUID方式的id值比较长,没法排序,这里演示使用雪花算法的方式作为id的值。
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
@Configuration
public class ActivitiConfig extends AbstractProcessEngineConfigurator {
@Value("${snow.workId: 1}")
private Integer workId;
@Value("${snow.dataCenterId: 1}")
private Integer dataCenterId;
@Bean
public Snowflake snowflake() {
Snowflake snowflake = new Snowflake(workId, dataCenterId);
return snowflake;
}
@Bean
public ProcessEngineConfigurationImpl processEngineConfigurationImpl(ProcessEngineConfigurationImpl processEngineConfigurationImpl) {
IdGenerator idGenerator = idGenerator();
processEngineConfigurationImpl.setIdGenerator(idGenerator);
processEngineConfigurationImpl.getDbSqlSessionFactory().setIdGenerator(idGenerator);
return processEngineConfigurationImpl;
}
@Bean
public IdGenerator idGenerator() {
return () -> snowflake().nextIdStr();
}
}