我想网站建设购物网上商城建设

张小明 2026/1/1 14:22:13
我想网站建设,购物网上商城建设,网商网官网,河北中石化建设网站文章目录1、Activiti7 核心类体系架构2、流程引擎配置类 - ProcessEngineConfiguration2.1 StandaloneProcessEngineConfiguration2.2 SpringProcessEngineConfiguration2.3 创建processEngineConfiguration3、工作流引擎创建 - ProcessEngine3.1 默认创建方式3.2 通用方式4、S…文章目录1、Activiti7 核心类体系架构2、流程引擎配置类 - ProcessEngineConfiguration2.1 StandaloneProcessEngineConfiguration2.2 SpringProcessEngineConfiguration2.3 创建processEngineConfiguration3、工作流引擎创建 - ProcessEngine3.1 默认创建方式3.2 通用方式4、Servcie服务接口4.1 Service创建方式4.2 Service总览5、使用示例核心对象创建与服务获取5.1. 创建流程引擎 (ProcessEngine)5.2. 获取服务并操作上一章节我们通过java代码中我们调用Activiti的工具类完成了Activiti数据库表的生成本节带大家来了解Activiti的类关系通过各个工具类关系图梳理出它的核心体系架构、各类间的关系以及主要服务接口的作用。1、Activiti7 核心类体系架构Activiti7的类结构围绕 ProcessEngine流程引擎 这个核心入口展开其核心关系可以概括为以下模式activiti.cfg.xmlactiviti的引擎配置文件包括ProcessEngineConfiguration的定义、数据源定义、事务管理器等此文件其实就是一个spring配置文件。2、流程引擎配置类 - ProcessEngineConfiguration这是创建流程引擎的工厂类负责读取配置如数据源、事务管理等。根据是否与Spring整合有两种主要实现StandaloneProcessEngineConfiguration用于Activiti独立运行自己管理事务。SpringProcessEngineConfiguration用于与Spring框架整合使用Spring的事务管理。2.1 StandaloneProcessEngineConfiguration使用StandaloneProcessEngineConfigurationActiviti可以单独运行来创建ProcessEngineActiviti会自己处理事务。配置文件方式通常在activiti.cfg.xml配置文件中定义一个id为 processEngineConfiguration 的bean.方法如下beanidprocessEngineConfigurationclassorg.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration!--配置数据库相关的信息--!--数据库驱动--propertynamejdbcDrivervaluecom.mysql.jdbc.Driver/!--数据库链接--propertynamejdbcUrlvaluejdbc:mysql:///activiti/!--数据库用户名--propertynamejdbcUsernamevalueroot/!--数据库密码--propertynamejdbcPasswordvalue123456/!--actviti数据库表在生成时的策略 true - 如果数据库中已经存在相应的表那么直接使用如果不存在那么会创建--propertynamedatabaseSchemaUpdatevaluetrue//bean还可以加入连接池:?xml version1.0 encodingUTF-8?beansxmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxmlns:txhttp://www.springframework.org/schema/txxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/contex http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsdbeaniddataSourceclassorg.apache.commons.dbcp.BasicDataSourcepropertynamedriverClassNamevaluecom.mysql.jdbc.Driver/propertynameurlvaluejdbc:mysql:///activiti/propertynameusernamevalueroot/propertynamepasswordvalue123456/propertynamemaxActivevalue3/propertynamemaxIdlevalue1//bean!--在默认方式下 bean的id 固定为 processEngineConfiguration--beanidprocessEngineConfigurationclassorg.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration!--引入上面配置好的 链接池--propertynamedataSourcerefdataSource/!--actviti数据库表在生成时的策略 true - 如果数据库中已经存在相应的表那么直接使用如果不存在那么会创建--propertynamedatabaseSchemaUpdatevaluetrue//bean/beans2.2 SpringProcessEngineConfiguration通过org.activiti.spring.SpringProcessEngineConfiguration 与Spring整合。创建spring与activiti的整合配置文件activity-spring.cfg.xml名称可修改beansxmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:mvchttp://www.springframework.org/schema/mvcxmlns:contexthttp://www.springframework.org/schema/contextxmlns:aophttp://www.springframework.org/schema/aopxmlns:txhttp://www.springframework.org/schema/txxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd!-- 工作流引擎配置bean --beanidprocessEngineConfigurationclassorg.activiti.spring.SpringProcessEngineConfiguration!-- 数据源 --propertynamedataSourcerefdataSource/!-- 使用spring事务管理器 --propertynametransactionManagerreftransactionManager/!-- 数据库策略 --propertynamedatabaseSchemaUpdatevaluedrop-create/!-- activiti的定时任务关闭 --propertynamejobExecutorActivatevaluefalse//bean!-- 流程引擎 --beanidprocessEngineclassorg.activiti.spring.ProcessEngineFactoryBeanpropertynameprocessEngineConfigurationrefprocessEngineConfiguration//bean!-- 资源服务service --beanidrepositoryServicefactory-beanprocessEnginefactory-methodgetRepositoryService/!-- 流程运行service --beanidruntimeServicefactory-beanprocessEnginefactory-methodgetRuntimeService/!-- 任务管理service --beanidtaskServicefactory-beanprocessEnginefactory-methodgetTaskService/!-- 历史管理service --beanidhistoryServicefactory-beanprocessEnginefactory-methodgetHistoryService/!-- 用户管理service --beanididentityServicefactory-beanprocessEnginefactory-methodgetIdentityService/!-- 引擎管理service --beanidmanagementServicefactory-beanprocessEnginefactory-methodgetManagementService/!-- 数据源 --beaniddataSourceclassorg.apache.commons.dbcp.BasicDataSourcepropertynamedriverClassNamevaluecom.mysql.jdbc.Driver/propertynameurlvaluejdbc:mysql://localhost:3306/activiti/propertynameusernamevalueroot/propertynamepasswordvaluemysql/propertynamemaxActivevalue3/propertynamemaxIdlevalue1//bean!-- 事务管理器 --beanidtransactionManagerclassorg.springframework.jdbc.datasource.DataSourceTransactionManagerpropertynamedataSourcerefdataSource//bean!-- 通知 --tx:adviceidtxAdvicetransaction-managertransactionManagertx:attributes/tx:attributes!-- 传播行为 --tx:methodnamesave*propagationREQUIRED/tx:methodnameinsert*propagationREQUIRED/tx:methodnamedelete*propagationREQUIRED/tx:methodnameupdate*propagationREQUIRED/tx:methodnamefind*propagationSUPPORTSread-onlytrue/tx:methodnameget*propagationSUPPORTSread-onlytrue//tx:attributes/tx:advice!-- 切面根据具体项目修改切点配置 --aop:configproxy-target-classtrueaop:advisoradvice-reftxAdvicepointcutexecution(* com.itheima.ihrm.service.impl.*.(..))*//aop:config/beans2.3 创建processEngineConfigurationProcessEngineConfiguration configuration ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(activiti.cfg.xml)上边的代码要求activiti.cfg.xml中必须有一个processEngineConfiguration的bean也可以使用下边的方法更改bean 的名字ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(String resource, String beanName);3、工作流引擎创建 - ProcessEngine这是Activiti工作的核心门户通过它可以获取所有操作流程的Service通过ProcessEngineConfiguration创建processEngine通过ProcessEngine创建各个service接口创建方式通常有两种3.1 默认创建方式使用 ProcessEngines.getDefaultProcessEngine()它会自动加载classpath下名为 activiti.cfg.xml 的配置文件。://直接使用工具类 ProcessEngines使用classpath下的activiti.cfg.xml中的配置创建processEngineProcessEngineprocessEngineProcessEngines.getDefaultProcessEngine();System.out.println(processEngine);3.2 通用方式先构建ProcessEngineConfiguration再通过其buildProcessEngine()方法创建。//先构建ProcessEngineConfigurationProcessEngineConfigurationconfigurationProcessEngineConfiguration.createProcessEngineConfigurationFromResource(activiti.cfg.xml);//通过ProcessEngineConfiguration创建ProcessEngine此时会创建数据库ProcessEngineprocessEngineconfiguration.buildProcessEngine();4、Servcie服务接口Service是工作流引擎提供用于进行工作流部署、执行、管理的服务接口我们使用这些接口可以就是操作服务对应的数据表所有对工作流的操作都通过从ProcessEngine中获取的各种Service完成。在Activiti7中IdentityService和FormService已被移除。以下是核心的五个Service及其作用4.1 Service创建方式通过ProcessEngine创建Service方式如下RuntimeServiceruntimeServiceprocessEngine.getRuntimeService();RepositoryServicerepositoryServiceprocessEngine.getRepositoryService();TaskServicetaskServiceprocessEngine.getTaskService();4.2 Service总览服务接口主要职责关键操作举例RepositoryService流程资源与部署管理。管理流程定义、模型等静态信息。部署流程定义(.bpmn文件)、查询流程定义、挂起/激活流程。RuntimeService流程运行实例管理。负责启动流程实例、设置流程变量等动态操作。启动流程实例、查询执行实例、触发流程事件。TaskService用户任务管理。处理流程中需要人工参与的任务。查询用户任务、完成任务、认领任务、设置任务负责人。HistoryService历史数据查询。提供对已执行流程的历史信息的查询功能用于审计和报表。查询已结束的流程实例、历史任务详情、流程变量变更记录。ManagementService引擎管理维护。提供对Activiti引擎本身的维护和管理功能通常在系统管理时使用。查询数据库表、管理异步作业。简单介绍RepositoryService是activiti的资源管理类提供了管理和控制流程发布包和流程定义的操作。使用工作流建模工具设计的业务流程图需要使用此service将流程定义文件的内容部署到计算机。除了部署流程定义以外还可以查询引擎中的发布包和流程定义。暂停或激活发布包对应全部和特定流程定义。 暂停意味着它们不能再执行任何操作了激活是对应的反向操作。获得多种资源像是包含在发布包里的文件 或引擎自动生成的流程图。获得流程定义的pojo版本 可以用来通过java解析流程而不必通过xml。RuntimeServiceActiviti的流程运行管理类。可以从这个服务类中获取很多关于流程执行相关的信息TaskServiceActiviti的任务管理类。可以从这个类中获取任务的信息。HistoryServiceActiviti的历史管理类可以查询历史信息执行流程时引擎会保存很多数据根据配置比如流程实例启动时间任务的参与者 完成任务的时间每个流程实例的执行路径等等。 这个服务主要通过查询功能来获得这些数据。ManagementServiceActiviti的引擎管理类提供了对 Activiti 流程引擎的管理和维护功能这些功能不在工作流驱动的应用程序中使用主要用于 Activiti 系统的日常维护。5、使用示例核心对象创建与服务获取5.1. 创建流程引擎 (ProcessEngine)// 方式一默认配置需要classpath下有activiti.cfg.xmlProcessEngineprocessEngineProcessEngines.getDefaultProcessEngine();// 方式二自定义配置ProcessEngineConfigurationconfigProcessEngineConfiguration.createProcessEngineConfigurationFromResource(activiti.cfg.xml);ProcessEngineprocessEngineconfig.buildProcessEngine();5.2. 获取服务并操作创建引擎后即可获取各个Service进行业务操作// 获取部署服务RepositoryServicerepositoryServiceprocessEngine.getRepositoryService();// 部署一个流程DeploymentdeploymentrepositoryService.createDeployment().addClasspathResource(holiday-request.bpmn20.xml).deploy();// 获取运行时服务RuntimeServiceruntimeServiceprocessEngine.getRuntimeService();// 使用流程定义的Key启动一个流程实例ProcessInstanceinstanceruntimeService.startProcessInstanceByKey(holidayRequest);// 获取任务服务TaskServicetaskServiceprocessEngine.getTaskService();// 查询某个用户的待办任务ListTasktaskstaskService.createTaskQuery().taskAssignee(zhangsan).list();// 完成任务taskService.complete(taskId);总而言之理解Activiti7类关系的关键是掌握“配置 - 引擎 - 服务”这条主线。所有的业务操作都通过从ProcessEngine中获取的五大Service来完成。“人的一生会经历很多痛苦但回头想想都是传奇”。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

外贸建站 厦门上海代理注册公司

3分钟快速去除视频水印:开源工具全攻略 【免费下载链接】video-watermark-removal Remove simple watermarks from videos with minimal setup 项目地址: https://gitcode.com/gh_mirrors/vi/video-watermark-removal 还在为视频中顽固的水印而烦恼吗&#x…

张小明 2025/12/31 2:55:32 网站建设

一般做外贸上什么网站好可信的网站建设

提升 Windows 电脑性能的全面指南 在使用 Windows 电脑的过程中,我们常常会遇到各种性能问题和系统故障。本文将为大家详细介绍一系列提升电脑性能、解决系统故障的方法,包括查看系统事件详情、恢复操作系统、使用步骤记录器以及请求远程协助等。 查看系统可靠性与事件详情…

张小明 2025/12/23 3:34:15 网站建设

企业建站多少钱一个月微信开放平台注销

有粉丝问我: 你录动图软件用的是啥? 你录视频用啥软件啊? 你的视频剪辑用的什么软件? 你平时写作用啥软件? 我今天盘点一下我日常比较常用的、非常好用的几款软件。 截图 Xnip 传送门:https://zh.x…

张小明 2025/12/23 3:33:14 网站建设

做一个网站价格室内设计专业就业方向

利用Ansible Container构建并部署NGINX容器 在容器化技术盛行的今天,Ansible Container为我们提供了一种高效、便捷的方式来构建和管理容器化应用。本文将详细介绍如何使用Ansible Container来安装、运行、修改和推送NGINX角色,帮助你快速搭建一个功能完善的NGINX服务器容器…

张小明 2025/12/23 3:32:11 网站建设

网站开发资费免费域名cn

在分布式系统的高并发场景中,内存管理往往成为性能瓶颈的隐形挑战。当你的RPC服务每秒处理数十万请求时,传统内存分配器带来的碎片化问题会让系统性能急剧下降。brpc作为工业级RPC框架,通过创新的内存复用机制,成功解决了这一难题…

张小明 2025/12/23 3:29:04 网站建设