目录
导入对应的jar包
如果项目中已经包含了mybatis,那么这里的activiti就要内置数据源以免冲突导致启动不了
<!-- Activiti 启动器 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>5.22.0</version>
<exclusions>
<exclusion><!-- 排除activiti的mybatis,避免和外面的mybatis-plus冲突 -->
<artifactId>mybatis</artifactId>
<groupId>org.mybatis</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- Activiti 流程图 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-diagram-rest</artifactId>
<version>5.22.0</version>
</dependency>
<!-- Activiti 在线设计 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-modeler</artifactId>
<version>5.22.0</version>
</dependency>
创建配置类
我这里是采用直接读取yml的数据源信息
package com.daysuns.dmas.sys.activit.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* @Author: wangshunlin@sunwoda.com
* @Date: 2022/12/14/11:04:45
* @version: 1.0
*/
@Component
public class ActivitiDataSourceProperties {
/**
* 读取yml中的数据源,再pom中由于单独导入了mybatis,因为如果不单独导入会和mybatisplus有冲突
*/
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
@Value("${spring.datasource.driver-class-name}")
private String driverClassName;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getDriverClassName() {
return driverClassName;
}
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
}
配置类
package com.daysuns.dmas.sys.activit.config;
import com.zaxxer.hikari.HikariDataSource;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.impl.history.HistoryLevel;
import org.activiti.spring.SpringProcessEngineConfiguration;
import org.activiti.spring.boot.AbstractProcessEngineAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import javax.annotation.Resource;
import javax.sql.DataSource;
/**
* @Author: wangshunlin@sunwoda.com
* @Date: 2022/12/14/11:04:12
* @version: 1.0
*/
@Configuration
public class ActitytiConfig extends AbstractProcessEngineAutoConfiguration {
@Resource
private ActivitiDataSourceProperties activitiDataSourceProperties;
/**
*
* 配置activiti的数据源 通过ActivitiDataSourceProperties读取
*/
@Bean
@Primary
public DataSource activitiDataSource() {
HikariDataSource DruiddataSource = new HikariDataSource();
DruiddataSource.setJdbcUrl(activitiDataSourceProperties.getUrl());
DruiddataSource.setDriverClassName(activitiDataSourceProperties.getDriverClassName());
DruiddataSource.setPassword(activitiDataSourceProperties.getPassword());
DruiddataSource.setUsername(activitiDataSourceProperties.getUsername());
return DruiddataSource;
}
@Bean
public PlatformTransactionManager transactionManager() {
return new DataSourceTransactionManager(activitiDataSource());
}
@Bean
@Primary
public SpringProcessEngineConfiguration springProcessEngineConfiguration() {
SpringProcessEngineConfiguration configuration = new SpringProcessEngineConfiguration();
configuration.setDataSource(activitiDataSource());
configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
configuration.setJobExecutorActivate(true);
configuration.setHistoryLevel(HistoryLevel.AUDIT);
configuration.setDbHistoryUsed(true);
configuration.setTransactionManager(transactionManager());
return configuration;
}
}
启动类配置
如果不配置则会报错
class path resource [org/springframework/security/config/annotation/authenti
@SpringBootApplication (exclude = {org.activiti.spring.boot.SecurityAutoConfiguration.class})
上述就已经完成activiti5.22的集成了,可以创建流程来测试
这里如果想要配置web端的设计器则要下载相应的内容,需要到GitHub上下载对应的资源