activiti工作流引擎使用
2016-08-14 19:40
295 查看
java项目开发工作流
如果学习activiti的话,首先要把activiti安装完成(我的博客里有相关的安装指南感兴趣的朋友可以去看一下:activiti安装详解),推荐大家网上去搜下activiti的jar包,以便完成相关开发。这是csnd的jar包链接activiti
jar包,可以从上面完成jar包下载。
二)、画一个简单的流程图(画完流程图之后会生成一个png 结尾的流程图片)
li
流程图画完之后,要在下面properties里配置一下流程定义的KEY,也就是id选项,然后可以给流程起一个名字
三)、部署流程,部署流程时会在数据库里生成一系列表(过程可能稍慢)
四)、开启流程
五)、查询任务的相关信息
六)、根据任务id提交任务
用spring把activiti的配置管理起来,好处是显而易见的,大大简便了我们的开发
如果学习activiti的话,首先要把activiti安装完成(我的博客里有相关的安装指南感兴趣的朋友可以去看一下:activiti安装详解),推荐大家网上去搜下activiti的jar包,以便完成相关开发。这是csnd的jar包链接activiti
jar包,可以从上面完成jar包下载。
简单的例子(不含用spring管理activiti)
一)、简单的用工作流连接数据库。<span style="font-size:18px;">//创建activiti配置对象的实例 <span style="white-space:pre"> </span>ProcessEngineConfiguration config = ProcessEngineConfiguration <span style="white-space:pre"> </span>.createStandaloneInMemProcessEngineConfiguration(); <span style="white-space:pre"> </span>//设置数据库连接信息 <span style="white-space:pre"> </span>//设置数据库地址 <span style="white-space:pre"> </span>config.setJdbcUrl("jdbc:mysql://localhost:3306/activiti5.4?useUnicode=true&characterEncoding=utf8"); <span style="white-space:pre"> </span>//数据库驱动 <span style="white-space:pre"> </span>config.setJdbcDriver("com.mysql.jdbc.Driver"); <span style="white-space:pre"> </span>//用户名密码 <span style="white-space:pre"> </span>config.setJdbcUsername("root"); <span style="white-space:pre"> </span>config.setJdbcPassword("1111"); <span style="white-space:pre"> </span>//设置自动创建表的规则,其中有多个属性,DB_SCHEMA_UPDATE_TRUE:表示表格没有就创建,有就不做任何处理 <span style="white-space:pre"> </span>config.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE); <span style="white-space:pre"> </span>//得到引擎 <span style="white-space:pre"> </span>engine = config.buildProcessEngine(); <span style="white-space:pre"> </span>//部署流程的service <span style="white-space:pre"> </span>repositoryService = engine.getRepositoryService(); <span style="white-space:pre"> </span>//开启流程的service <span style="white-space:pre"> </span>runtimeService = engine.getRuntimeService(); <span style="white-space:pre"> </span>//任务的service <span style="white-space:pre"> </span>taskService = engine.getTaskService();</span>
二)、画一个简单的流程图(画完流程图之后会生成一个png 结尾的流程图片)
li
流程图画完之后,要在下面properties里配置一下流程定义的KEY,也就是id选项,然后可以给流程起一个名字
三)、部署流程,部署流程时会在数据库里生成一系列表(过程可能稍慢)
<span style="font-size:18px;">Deployment deploy = repositoryService.createDeployment() .name("请假流程【mashihao】").addClasspathResource("leave.bpmn") .addClasspathResource("leave.png").deploy(); System.out.println(deploy.getId()); System.out.println(deploy.getName()); System.out.println(deploy.getDeploymentTime()); System.out.println(deploy.getCategory());</span>
四)、开启流程
<span style="fon 92d6 t-size:18px;">ProcessInstance pi = runtimeService.startProcessInstanceByKey("leaveProcess");</span>
五)、查询任务的相关信息
<span style="font-size:18px;">TaskQuery query = taskService.createTaskQuery(); List<Task> list = query.list(); for (Task task : list) { System.out.println(task.getId()); System.out.println(task.getName()); System.out.println(task.getDueDate());</span>
六)、根据任务id提交任务
taskService.complete("204");
这样一个简单的流程就已经执行完毕了
用spring管理activiti相关配置
我们要更进一步的理解工作流,用spring来管理activiti的一些配置<span style="font-size:18px;"><bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti5.4?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf8"/> <property name="jdbcDriver" value="com.mysql.jdbc.Driver"/> <property name="jdbcUsername" value="root"/> <property name="jdbcPassword" value="1111"/> <property name="databaseSchemaUpdate" value="true"/> </bean> <bean id="engine" factory-bean="processEngineConfiguration" factory-method="buildProcessEngine" /> <bean id="repositoryService" factory-bean="engine" factory-method="getRepositoryService" /> <bean id="runtimeService" factory-bean="engine" factory-method="getRuntimeService" /> <bean id="taskService" factory-bean="engine" factory-method="getTaskService" /> <bean id="historyService" factory-bean="engine" factory-method="getHistoryService" /></span> <bean id="identityService" factory-bean="engine" factory-method="getIdentityService" />
<span style="font-size:18px;">private ClassPathXmlApplicationContext factory; private RepositoryService repositoryService; private RuntimeService runtimeService; private TaskService taskService; private HistoryService historyService; @Before public void init() { factory=new ClassPathXmlApplicationContext("Activiti.cfg.xml"); repositoryService = (RepositoryService) factory.getBean("repositoryService"); runtimeService = (RuntimeService) factory.getBean("runtimeService"); taskService = (TaskService) factory.getBean("taskService"); historyService = (HistoryService) factory.getBean("historyService"); }</span>
用spring把activiti的配置管理起来,好处是显而易见的,大大简便了我们的开发
相关文章推荐
- Activiti工作流引擎使用
- Activiti工作流引擎使用
- Activiti工作流引擎使用
- Activiti工作流引擎使用
- Activiti工作流引擎使用
- Activiti工作流引擎使用(Activiti的乱码问题)
- Activiti工作流引擎使用
- Activiti工作流引擎使用
- Activiti工作流引擎使用
- Activiti工作流引擎使用
- Activiti工作流引擎使用
- Activiti工作流引擎使用
- Activiti工作流引擎使用
- Activiti工作流引擎使用
- Activiti工作流引擎使用
- Activiti工作流引擎使用
- Activiti工作流引擎使用
- Activiti工作流引擎使用
- Activiti工作流引擎使用
- Activiti工作流引擎使用