Activiti工作流学习(一)

工作流主要解决问题:

为了实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。

意义:

虽然工作流实现的功能也可以不用工作流就能实现,但普通实现过程难度大、代码逻辑结构复杂、增加了大量的与数据库交互的过程,而使用工作流能大大的简化开发工程。

activiti工作流学习的重点:

  • 一个引擎:ProcessEngine对象时activiti工作流的引擎,是工作的核心,所有的操作都是从他开始的,所以一般会把引擎作为全局变量。
  • 配置文件:activiti核心配置文件activiti.cfg.xml,配置流程引擎创建工具的基本参数和数据库连接池参数。该文件名为默认文件名,修改后再用需要指定文件。
  • 23张表:activiti依赖数据库,共有23张表存放不同方面的数据,有流程定义表、任务结点表、流程变量表、任务历史表等等。
  • 5项service:不同service类对应不同的功能。比如TaskService是任务服务类,可以从这个类中获取任务的信息。HistoryService是查询历史信息类,在一个流程执行完成后,这个对象为我们提供查询历史信息。
  • 7项基本操作:
    1.流程图的创建(各种组件,如用户、任务、网关、连线等)
    2.流程定义增删改查
    3.流程变量增删改查
    4.启动流程定义
    5.任务增删改查
    6.完成任务
    7.历史信息查询

工作流工程的创建:

关于工作流工程的创建网上有很多的帖子和教程,我就不细说了,我只说一下其中的注意事项。

  • eclipse下载activiti插件有两种方式(具体百度),第一种是在Help->Install New Software里安装,第二种是下载好插件包,解压到eclipse安装目录的dropins目录。第一种如果网络不好是不行的,即使网速快也要安装10多分钟,第二种是要看eclipse的版本的,亲测eclipse3.7是可以用第二种方式安装,而eclipse4.5是不能用第二种方式安装,eclipse4.6可以用第一种方式安装,其余版本情况我就不清楚了。
  • activiti插件创建的activiti工程是maven工程的结构目录。我在eclipse3.7中用第二种方式安装好插件后创建activiti工程,发现虽然有maven的pom.xml但是并没有把pom.xml生成的库即Maven Dependencies加载到环境中,而通过在项目上右击选择maven->Enable Dependency Management把Maven Dependencies加载到环境中后发现项目报错,而报错的内容通过各种百度都解决不了。但使用eclipse4.6第一种方式安装插件创建的activiti工程却可以顺利的转换为maven工程。这里我的结论是如果maven理解的不够,就不要用activiti插件创建activiti工程,只用eclipse创建java工程或动态web工程,再用activiti插件创建activiti Diagram,最后再在lib中加入各种依赖包也是可以实现的,如果就是想用maven方式而又不成功的话,建议多换换eclipse和activiti插件的版本试试。

activiti引擎的创建:

两种方式:
1.第一种方式不需要配置文件。

@Test
public void createActiviti(){
        ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
        processEngineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver");
        processEngineConfiguration.setJdbcUrl("jdbc:mysql://localhost:3306/数据库名");
        processEngineConfiguration.setJdbcUsername("数据库用户名");
        processEngineConfiguration.setJdbcPassword("数据库密码");

        processEngineConfiguration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);

        ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();
        System.out.println(processEngine);
}

2.第二种方式需要配置文件,注意文件名修改的话需要指定那个文件,下边代码就是修改文件名后的代码。

@Test
public void createActiviti(){
            ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti-config.xml");
            ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();
            System.out.println(processEngine);
}

如果不修改用默认文件名activiti.cfg.xml,则代码为

ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault();

配置文件代码如下,其实就是一个spring的配置文件。

<beans xmlns="http://www.springframework.org/schema/beans"
       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">

    <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <property name="jdbcDriver" value="com.mysql.jdbc.Driver"></property>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/数据库名"></property>
        <property name="jdbcUsername" value="数据库用户名"></property>
        <property name="jdbcPassword" value="数据库密码"></property>
        <property name="databaseSchemaUpdate" value="true"></property>
    </bean>
</beans> 

注意参数databaseSchemaUpdate共有三种类型,上边代码中设置为true是最常用的一种,其余的两种自行百度吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值