在Activiti 7中,如果未指定模型的ID,则可以将其视为自动生成的。在此情况下,Activiti 7会使用类似UUID的算法自动生成一个唯一的ID,并将其分配给新创建的模型。
一般生成的ID如下:
想使用自定义ID,实现IdGenerator,重写getNextId方法,自定义ID生成逻辑,
@Component
public class CustomIdGenerator implements IdGenerator {
@Override
public String getNextId() {
return System.currentTimeMillis() + String.valueOf(new Random().nextInt(10000));
}
}
创建配置类
@Configuration
public class MyActivitiConfiguration extends AbstractProcessEngineConfigurator {
@Autowired
private CustomIdGenerator customIdGenerator;
@Bean
public ProcessEngineConfigurationImpl processEngineConfigurationImpl(ProcessEngineConfigurationImpl processEngineConfigurationImpl) {
//设置ProcessEngineConfigurationImpl里的CustomIdGenerator
processEngineConfigurationImpl.setIdGenerator(customIdGenerator);
//设置DbSqlSessionFactory的CustomIdGenerator ,否则流程id,任务id,实例id依然是用DbIdGenerator生成
processEngineConfigurationImpl.getDbSqlSessionFactory().setIdGenerator(customIdGenerator);
return processEngineConfigurationImpl;
}
}
启动项目即可修改