Activiti配置实例以及Spring集成配置


public
class TestDB {public static void main(String[] args) {//1。 创建Activiti配置对象的实例ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();//2. 设置数据库连接信息// 设置数据库地址configuration.setJdbcUrl("jdbc:mysql://localhost:3306/activiti_test?createDatabaseIfNotExist=true");// 数据库驱动configuration.setJdbcDriver("com.mysql.jdbc.Driver");// 用户名configuration.setJdbcUsername("root");// 密码configuration.setJdbcPassword("123456");// 设置数据库建表策略(默认不会建表) configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);//3. 使用配置对象创建流程引擎实例(检查数据库连接等环境信息是否正确)ProcessEngine processEngine = configuration.buildProcessEngine();System.out.println(processEngine);}
 public void testDBByProperties() throws Exception {// 1。 加载classpath下名为activiti.cfg.xml文件,创建核心流程引擎对象ProcessEngine processEngine = ProcessEngineConfiguration.
                   createProcessEngineConfigurationFromResource("activiti.cfg.xml").
                   buildProcessEngine();System.out.println(processEngine);
//或者 private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();此方法默认和上面一样 } }

activiti.cfg.xml

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"><bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"><!-- 数据库连接配置 --><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti_test?createDatabaseIfNotExist=true"></property><property name="jdbcDriver" value="com.mysql.jdbc.Driver"></property><property name="jdbcUsername" value="root"></property><property name="jdbcPassword" value="mikesirius"></property><!-- 建表策略 --><property name="databaseSchemaUpdate" value="true"></property></bean></beans>

Spring集成

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"><bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"><!-- 数据源 --><property name="dataSource" ref="dataSource" /><!-- 配置事务管理器,统一事务 --><property name="transactionManager" ref="transManager" /><!-- 设置建表策略 --><property name="databaseSchemaUpdate" value="true" /></bean><bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean"><property name="processEngineConfiguration" ref="processEngineConfiguration" /></bean><!-- bean id repositoryServiceRepositoryServicie repositoryService = processEngine.getRepositoryService();--><bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" /><bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService" /><bean id="taskService" factory-bean="processEngine" factory-method="getTaskService" /><bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService" /><bean id="formService" factory-bean="processEngine" factory-method="getFormService" /><!-- 流程相关的Service --><bean id="workflowService" class="activitiweb.service.impl.WorkflowServiceImpl"><property name="repositoryService" ref="repositoryService"></property><property name="runtimeService" ref="runtimeService"></property><property name="taskService" ref="taskService"></property><property name="formService" ref="formService"></property><property name="historyService" ref="historyService"></property></bean></beans>

 

核心API介绍

  1、ProcessEngine

    在Activiti中最核心的类,其他的类都是由他而来。

    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

    可以通过processEngine 的get产生以下Service

RepositoryService

管理流程定义

RuntimeService

执行管理,包括启动、推进、删除流程实例等操作

TaskService

任务管理

HistoryService

历史管理(执行完的数据的管理)

IdentityService

组织机构管理

FormService

一个可选服务,任务表单管理

ManagerService

 

  2、RepositoryService

    是Activiti的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片。

  3、RuntimeService

    是activiti的流程执行服务类。可以从这个服务类中获取很多关于流程执行相关的信息。

  4、TaskService

    是activiti的任务服务类。可以从这个类中获取任务的信息。

  5、ProcessDefinition

    流程定义类。可以从这里获得资源文件等。

  6、ProcessInstance

    代表流程定义的执行实例。如范冰冰请了一天的假,她就必须发出一个流程实例的申请。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。

    从源代码中可以看出ProcessInstance就是Execution,ProcessInstance继承Execution

  7、Execution

    Activiti用这个对象去描述流程执行的每一个节点。在没有并发的情况下,同ProcessInstance。

 

Activiti核心配置文件,配置流程引擎创建工具的基本参数和数据库连接池参数。

  定义数据库配置参数:

  jdbcUrl: 数据库的JDBC URL。

  jdbcDriver: 对应不同数据库类型的驱动。

  jdbcUsername: 连接数据库的用户名。

  jdbcPassword: 连接数据库的密码。

  基于JDBC参数配置的数据库连接 会使用默认的MyBatis连接池。 下面的参数可以用来配置连接池(来自MyBatis参数):

  jdbcMaxActiveConnections: 连接池中处于被使用状态的连接的最大值。默认为10。

  jdbcMaxIdleConnections: 连接池中处于空闲状态的连接的最大值。

  jdbcMaxCheckoutTime: 连接被取出使用的最长时间,超过时间会被强制回收。 默认为20000(20秒)。

  jdbcMaxWaitTime: 这是一个底层配置,让连接池可以在长时间无法获得连接时, 打印一条日志,并重新尝试获取一个连接。(避免因为错误配置导致沉默的操作失败)。 默认为20000(20秒)。

 

    

转载于:https://www.cnblogs.com/cxyj/p/3877144.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux字符设备驱动剖析

以下内容整理于Linux字符设备驱动剖析&#xff0c;如有侵权请告知删除 。 一、应用层的程序 应用程序一般都是open打开设备文件&#xff0c;read、write、ioctl设备文件&#xff0c;最后close设备文件退出。 int main(int argc ,char *argv[]) { unsigned char val[1] 1; …

php处理form多文件上传,ajax利用FormData、FileReader实现多文件上传php获取

前台代码(注意&#xff0c;不需要用到form标签)&#xff1a;a. html部分&#xff1a;b. js部分&#xff1a;c. 完整代码&#xff1a;function loadDoc(file,data,asynctrue){if(window.XMLHttpRequest){ // code for IE7, Firefox, Chrome, Opera, Safarixmlhttpnew XMLHttpReq…

getattr

getattr(object, name[, default]) -> value Get a named attribute from an object; getattr(x, y) is equivalent to x.y. When a default argument is given, it is returned when the attribute doesnt exist; without it, an exception is raised in that case转载于:h…

rpmbuild FILE

2、一些rpm相关信息rpm软件包系统的标准分组&#xff1a;/usr/share/doc/rpm-4.3.3/GROUPS各种宏定义&#xff1a; /usr/lib/rpm/macros已经安装的rpm包数据库&#xff1a; /var/lib/rpm如果要避免生成debuginfo包&#xff1a;这个是默认会生成的rpm包。则可以使用下面的命令&a…

Linux设备文件的创建和mdev

以下内容源于微信公众号嵌入式企鹅圈&#xff0c;有格式内容上的修改&#xff0c;如有侵权请告知删除。 本文将从代码级去理解Linux设备类和设备文件的创建过程。 一、设备类相关知识 设备类是虚拟的&#xff0c;并没有直接对应的物理实物&#xff0c;只是为了更好地管理同一类…

linux查看执行过的命令行,在Linux命令终端中查看和编辑曾执行过的命令 – LINUX笔记 – CFEI.NET...

今天我们来讲讲linux的知识,积累的这些知识就是我们以后的财富,各位加油.因为水平有限&#xff0c;难免有疏忽或者不准确的地方&#xff0c;希望大家能够直接指出来&#xff0c;我会及时改正。一切为了知识的分享。history 命令可以用来显示曾执行过的命令&#xff0c;也可以根…

烂泥:【解决】word复制windows live writer没有图片

本文由秀依林枫提供友情赞助&#xff0c;首发于烂泥行天下。 在使用windows live writer发表博客&#xff0c;博客先是在是word2013中进行编辑&#xff0c;编辑完毕后我会复制到windows live writer中&#xff0c;然后发表出去。 使用了几年都没有问题&#xff0c;就是最近这个…

平台设备与平台驱动的注册

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 参考资料 linux中 probe函数何时调用 platform总线的probe函数调用_Linux编程_Linux公社-Linux系统门户网站 Linux设备驱动模型之platform(平台)总线详解 Linux设备驱动模型2——总线式设备驱动组织方式_天…

JDK源码 - BitSet的实现

java.util.BitSet是个很有趣的类&#xff0c;了解其内部实现对正确的使用非常重要。 对象构造&#xff1a; Java代码 private final static int ADDRESS_BITS_PER_WORD 6; private final static int BITS_PER_WORD 1 << ADDRESS_BITS_PER_WORD; private long[] wor…

细粒度权限控制 linux,利用docker插件实现细粒度权限控制

前言我们在实际的docker运行环境下&#xff0c;大都会遇到多用户的情况&#xff0c;为了安全起见&#xff0c;有些用户我们不想给予其全面的docker控制权限&#xff0c;比如不想某些用户执行docker stop 以及docker rm 等危险指令&#xff0c;当然我们可以从系统账号权限来控制…

linux查找命令、find、grep总结

find 命令 语法&#xff1a;find 搜索路径 匹配表达式 功能&#xff1a;该命令用于在指定路径中查找符合条件的文件&#xff0c;搜索路径可以是多个目录&#xff0c;不同目录之间以空格分隔 &#xff08;1&#xff09;匹配表达式1 -name filename&#xff1a;要查找的文件…

Sharepoint学习笔记—ECM系列--根据位置设置的默认元数据值(Location-Based Metadata Defaults)...

如果有这样一个需求&#xff1a;客户在一个SharePoint 2010的站点的document library中创建了不同的文件夹FolderA和FolderB&#xff0c;对于上传到此文件夹的文件记录中有某一个列ColumnM,现在他实现当上传文件到不同的文件夹FolderA或FolderB时&#xff0c;列ColumnM使用不同…

linux上安装fio教程,fio工具安装及使用

fio是一种I / O工具&#xff0c;用于基准测试和压力/硬件验证。它支持19种不同类型的I / O引擎(sync&#xff0c;mmap&#xff0c;libaio&#xff0c;posixaio&#xff0c;SG v3&#xff0c;splice&#xff0c;null&#xff0c;network&#xff0c;syslet&#xff0c;guasi&…

Maven的学习资料收集--(九) 构建SSH项目以及专栏maven

在这里整合一下&#xff0c;使用Maven构建一个SSH项目 1.新建一个Web项目 可以参照前面的博客 2.添加依赖&#xff0c;修改pom.xml [html] view plaincopy <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-i…

博客园的CSRF

CSRF全称 Cross Site Request Forgery&#xff0c;跨站请求伪造。通俗理解&#xff1a;攻击者盗用当前用户身份&#xff0c;发请当前用户的恶意请求&#xff1a;如邮件&#xff0c;银行转账等。 CSRF原理 CSRF过程 登录网站A&#xff0c;生成本地Cookie信息&#xff1b;登录危…

linux 设备驱动总结,linux设备驱动归纳总结.doc

linux设备驱动归纳总结linux设备驱动归纳总结内核&#xff1a;用于管理软硬件资源&#xff0c;并提供运行环境。如分配4G虚拟空间等。 linux设备驱动&#xff1a;是连接硬件和内核之间的桥梁。linux系统按个人理解可按下划分&#xff1a;应用层&#xff1a;包括POSIX接口&#…

开发板——在X210开发板上进行裸机开发的细节

以下内容是学习裸机开发过程中的一些细节内容的记录。 1、汇编语言函数细节 用汇编写的函数&#xff0c;末尾应该添加mov pc,lr语句。 2、裸机代码相关文件 3、关于链接地址 4、关于重定位的理解 &#xff08;1&#xff09;在sram内部重定位 这是在sram内部重定位&#xff0c;因…

linux报网络设备繁忙,【分享】linux常用命令

压缩与备份:bzip2/bunzip2 .bz2文件的压缩/解压缩程序cpio 备份文件dump 备份文件系统gzip/gunzip .gz文件的压缩/解压缩程序gzexe 压缩可执行文件restore 还原由倾倒(Dump)操作所备份下来的文件或整个文件系统(一个分区)tar 将若干文件存档或读取存档文件unarj 解压缩.…

HDU-4454 Stealing a Cake 三分枚举

题意&#xff1a;给定一个点&#xff0c;一个圆&#xff0c;以及一个矩形&#xff0c;现在问从一个点到一个圆再到一个矩形的最短距离为多少&#xff1f;到达一个目标可以只挨着或者穿过它。 解法&#xff1a;目前只知道从一个点到圆上按照[0,PI]&#xff0c;[PI,2*PI]的两个半…