Hello Activiti 创建工作流的三种方式

来源:互联网 发布:淘宝网百雀羚旗舰店 编辑:程序博客网 时间:2024/05/17 19:58

   最近项目中用到些流程相关的内容,当时也不知道工作流这么高大上的东西,就完全手写逻辑,按照客户的要求硬生生的写,做起来也是各种费劲,好不容易写完了。客户说,哎呀这个不好,要改,改的还老复杂了,我的天,想提着刀弄死客户的心都有了,一改再改。后来听说activiti工作流,做流程比较简单,怀着崇敬的心情开始学习工作流了。万事开头难,刚开始接触会觉得一头雾水的,多学多练,相信一定会弄懂activiti的。奋斗

  这是一个简单的小例子,牵涉的内容不多,一个普通的maven工程,里面有四个文件

  1、关于activiti 的依赖,配置在pom.xml中,当然完全可以直接使用activiti官方例子中lib下的jar包

  2、默认的activiti 配置文件activiti.cfg.xml ,注意名字一定要和这个一模一样。不一样也行,就是需要指定。

  3、日志的相关配置 log4j.properties 里面没啥配置,复制过来就行了

  4、测试文件,关于创建activiti 工作流的三种方式

   首先新建一个普通的maven工程,并将pom.xml 和 activiti.cfg.xml 以及log4j.properties放到指定目录下就可以了,它们不是重点,拿过来直接用就行了。

三种方式代码如下

方式1,这种方式必须有activiti.cfg.xml  文件名必须是这个,推荐使用这种方式


    /**通过默认 activiti.cfg.xml 方式获取*/    @Test    public void getProcessEngineByDefault(){        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();        System.out.println("getProcessEngineByDefault:" + processEngine);        processEngine.close();    }


activiti.cfg.xml 文件内容如下


<?xml version="1.0" encoding="UTF-8"?><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-3.0.xsd">  <bean id="processEngineConfiguration"        class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">    <property name="jdbcDriver" value="com.mysql.jdbc.Driver" />    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8" />    <property name="jdbcUsername" value="root" />    <property name="jdbcPassword" value="123456" />    <property name="databaseSchemaUpdate" value="true" />  </bean></beans>


方式2 ,也是将配置放到配置文件中,文件名可以随意写,这里就直接使用默认的了,内容和上面一样


    /**通过指定 activiti.cfg.xml 方式获取*/    @Test    public void getProcessEngineByXmlConfig(){        ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");        ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();        System.out.println("getProcessEngineByXmlConfig:" + processEngine);        processEngine.close();    }

方式3,直接在java代码中配置,这种不灵活,不建议使用,以上两种都可以,最简单的还是方式1


    /**通过配置Java类 方式获取*/    @Test    public void getProcessEngineByJavaConfig(){        //获取config对象        ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration                .createStandaloneProcessEngineConfiguration();        //Jdbc设置        String jdbcDriver = "com.mysql.jdbc.Driver";        String jdbcUrl = "jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf-8";        String jdbcUsername = "root";        String jdbcPassword = "123456";        processEngineConfiguration.setJdbcDriver(jdbcDriver);        processEngineConfiguration.setJdbcUrl(jdbcUrl);        processEngineConfiguration.setJdbcUsername(jdbcUsername);        processEngineConfiguration.setJdbcPassword(jdbcPassword);        processEngineConfiguration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);        //获取引擎对象        ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();        System.out.println("getProcessEngineByJavaConfig:" + processEngine);        processEngine.close();    }

通过上面三种方式,都可以获取到activiti工作流引擎,在没有数据库表的情况下,会自动创建工作流使用的23张表




这是个最简单的例子,也是开始认识工作流的开始,需要这个工程的话,我后续会提供下载链接。太晚了,睡觉,明天、后天还得苦逼的加班,连双休都得住公司了。大哭