怎么建立公司网站费用,代发关键词排名包收录,wordpress 快站,广州海珠网站建设Activiti是一个轻量级的工作流程和业务流程管理#xff08;BPM#xff09;平台#xff0c;它主要面向业务人员、开发人员和系统管理员。这个平台的核心是一个快速且可靠的Java BPMN 2流程引擎。Activiti是开源的#xff0c;并且基于Apache许可证进行分发。它可以运行在任何… Activiti是一个轻量级的工作流程和业务流程管理BPM平台它主要面向业务人员、开发人员和系统管理员。这个平台的核心是一个快速且可靠的Java BPMN 2流程引擎。Activiti是开源的并且基于Apache许可证进行分发。它可以运行在任何Java应用程序、服务器、集群或云环境中并且与Spring框架完美集成以其轻量级和基于简单概念的特点而闻名 Activiti在中国市场的情况 Activiti的工作流引擎功能包括流程定义与建模、流程执行与管理、集成与扩展等。它适用于各行各业的业务流程自动化包括消费品行业、制造业、电信服务业、金融服务业、物流服务业、政府事业机构等。Activiti的工作流引擎可用于构建各种类型的工作流如审批流程、业务流程等通过定义清晰的流程和任务分配规则企业可以提高工作效率减少人为错误并实现流程的自动化。由于activiti发展比较早在国内各种新老系统都有广泛应用。 如果您是一名新手该如何快速将Activiti工作流用于自己的业务开发 我们推荐使用JeecgFlow这套技术脚手架将帮您快速提高效率。接下来本文将通过JeecgBoot如何集成Activiti工作流进行阐述助力您自己动手实现一些简单的Demo 环境介绍
项目版本JeecgBoot3.6.1Activiti7.0.0.Beat2jdk1.8
JeecgBoot新增activiti模块
首先我们要新建一个模块命名成:jeecg-module-activiti 与现有的命名方式保持一致。在这个模块去做activiti工作流相关的业务。
1.在项目中点击右键选择module 添加图片注释不超过 140 字可选
2.直接进入创建模块不要选择任何依赖。 添加图片注释不超过 140 字可选
3.完成模块命令写入jeecg-module-activiti 添加图片注释不超过 140 字可选
dependencygroupIdorg.jeecgframework.boot/groupIdartifactIdjeecg-boot-base-core/artifactId
/dependency并在该模块下加入上述依赖。 这个是jeecg的核心模块也是一个公共模块。
4.在jeecg-boot-module-system的start模块的pom.xml引入新增的activit模块 dependencygroupIdorg.jeecgframework.boot/groupIdartifactIdjeecg-module-activiti/artifactIdversion${jeecgboot.version}/version/dependency5.swagger配置
在swagger配置新模块的swagger扫描bean.找到Swagger2Config。追加如下Bean配置。
Bean
public Docket loanApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).groupName(会员模块).select()//此包路径下的类才生成接口文档.apis(RequestHandlerSelectors.basePackage(org.jeecg.crm))//加了ApiOperation注解的类才生成接口文档.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).paths(PathSelectors.any()).build().securitySchemes(Collections.singletonList(securityScheme()));//.globalOperationParameters(setHeaderToken());
}6.mybatis-plus配置
mybatis-plus在application.yml中的配置.
mybatis-plus:mapper-locations: classpath*:classpath*:org/jeecg/activiti/**/xml/*Mapper.mybatis-plus配置类的配置.MybatisPlusSaasConfig配置mapper文件扫描路径 Configuration
MapperScan(value{org.jeecg.modules.**.mapper*,org.jeecg.activiti.**.mapper*})
public class MybatisPlusSaasConfig {
}完成以上配置 你可以往这个模块建表。到这也就完成第一步。模块建立。 接下来说明下如何完善activiti模块的依赖和配置。
Activiti模块的安装和配置
项目父pom.xml中新增activiti的依赖
dependencyManagementdependencies!--以下是所需的依赖文件--dependencygroupIdorg.activiti/groupIdartifactIdactiviti-spring-boot-starter/artifactIdversion7.0.0.Beta2/versionexclusionsexclusion!-- 重点坑不排除mybatis的话在启动项目时会报错mybatisplus缺少类 --artifactIdmybatis/artifactIdgroupIdorg.mybatis/groupId/exclusion/exclusions/dependency/dependencies
/dependencyManagementjeecg-module-activit模块的依赖
dependencygroupIdorg.activiti/groupIdartifactIdactiviti-spring-boot-starter/artifactIdexclusionsexclusion!-- 重点坑不排除mybatis的话在启动项目时会报错mybatisplus缺少类 --artifactIdmybatis/artifactIdgroupIdorg.mybatis/groupId/exclusion/exclusions
/dependency注意啦需要将这个模块在jeecg-module-system/jeecg-system-start模块的pom.xml新增如下 dependencies!-- SYSTEM 系统管理模块 --dependencygroupIdorg.jeecgframework.boot/groupIdartifactIdjeecg-system-biz/artifactIdversion${jeecgboot.version}/version/dependency!-- Activiti模块 --dependencygroupIdorg.jeecgframework.boot/groupIdartifactIdjeecg-module-activti/artifactIdversion${jeecgboot.version}/version/dependency!-- DEMO 示例模块 --dependencygroupIdorg.jeecgframework.boot/groupIdartifactIdjeecg-module-demo/artifactIdversion${jeecgboot.version}/version/dependency!-- flyway 数据库自动升级 --dependencygroupIdorg.flywaydb/groupIdartifactIdflyway-core/artifactId/dependency
/dependencies
application.yml配置
spring:activiti:#1.flase默认值。activiti在启动时对比数据库表中保存的版本如果没有表或者版本不匹配将抛出异常#2.true activiti会对数据库中所有表进行更新操作。如果表不存在则自动创建#3.create_drop 在activiti启动时创建表在关闭时删除表必须手动关闭引擎才能删除表#4.drop-create 在activiti启动时删除原来的旧表然后在创建新表不需要手动关闭引擎database-schema-update: true# 检测历史信息表是否存在activiti7默认不生成历史信息表开启历史表db-history-used: true# 历史记录存储等级history-level: fullcheck-process-definitions: truemysql配置-nullCatalogMeansCurrenttrue
url: jdbc:mysql://rxxx/jeecg-camunda?characterEncodingUTF-8useUnicodetrueuseSSLfalsetinyInt1isBitfalseallowPublicKeyRetrievaltrueserverTimezoneAsia/ShanghainullCatalogMeansCurrenttrue
//需要在尾部追加nullCatalogMeansCurrenttrue
//如果不追加 可能会出现cause: java.sql.SQLSyntaxErrorException:
Table jeecg-camunda.act_ge_property doesnt existActiviti7 中自带的 Security 安全框架排除掉因为我这里使用的是 Shiro 安全框架Security 就没什么用处了
SpringBootApplication(exclude { DataSourceAutoConfiguration.class, SecurityAutoConfiguration.class,SecurityAutoConfiguration.class,ManagementWebSecurityAutoConfiguration.class})
public class OAApplication
{public static void main(String[] args){SpringApplication.run(OAApplication.class, args);System.out.println(启动成功~);}
}上面排除 Security 安全框架的操作对于 Activiti 7.1.0.M6 这个版本是没用的
因为这个版本的代码强引用了 SpringSecurity 里的内容
比如在 Activiti 的 SpringBoot 配置类中强引用 UserDetailsService
没有这个就会报错所以我们还需要把版本降到7.1.0.M4及以下。代码编写
ApiOperation(value 启动流程, notes 启动流程)
PostMapping(/start)
public Result? start(RequestBody LeaveReq leaveReq) {log.info(start.leaveReq:{} Thread.currentThread().getId());LoginUser loginUser (LoginUser) SecurityUtils.getSubject().getPrincipal();//启动流程并设置启动人Authentication.setAuthenticatedUserId(loginUser.getUsername());MapString, Object variables new HashMap(4);variables.put(general, loginUser.getUsername());variables.put(guide, 诸葛亮);variables.put(leader, 刘备);ProcessInstance processInstance runtimeService.startProcessInstanceByKey(leaveReq.getModelKey(), variables);}综上就是一个Activiti工作流在JeecgBoot开源项目中集成并且简易运行的案例 更多详情请访问JeecgFlow