activiti5.16 项目实战笔记

匿名 (未验证) 提交于 2019-12-03 00:37:01

Activiti 项目实战笔记

项目中用到的所有jar 包和插件 我都整理出来放在

首先在eclipse中装activiti插件方便开发过程中进行流程设计
我这里主要写离线安装方法,网络方便的话可以选择在线安装。。百度一大堆,更简单。
1,拿到工具包中的 activiti插件安装.zip 解压。
2,将解压好的activiti+文件夹里的3个jar文件复制到eclipse安装目录的plugins目录下。
3,删除eclipse安装目录下,configuration文件夹里的org.eclipse.update文件夹,重启eclipse。

1,首先在项目中导入activiti 的相关jar 包,libs 文件夹中的所有jar包拷贝到项目的jar包目录lib下,然后build path 。其他spring MVC相关的jar包我就不说了。

2,接下来就添加配置文件

新增配置文件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">      <import resource="classpath:applicationContext.xml"/>     <!--          ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();         //连接数据库的配置         processEngineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver");         processEngineConfiguration.setJdbcUrl("jdbc:mysql://localhost:3306/itcast0711activiti?useUnicode=true&characterEncoding=utf8");         processEngineConfiguration.setJdbcUsername("root");         processEngineConfiguration.setJdbcPassword("root");          /**             public static final String DB_SCHEMA_UPDATE_FALSE = "false";不能自动创建表,需要表存在             public static final String DB_SCHEMA_UPDATE_CREATE_DROP = "create-drop";先删除表再创建表             public static final String DB_SCHEMA_UPDATE_TRUE = "true";如果表不存在,自动创建表          */         processEngineConfiguration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);      --> <!--    <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/itcast0711activiti?useUnicode=true&amp;characterEncoding=utf8"></property> --> <!--        <property name="jdbcUsername" value="root"></property> --> <!--        <property name="jdbcPassword" value="root"></property> -->         <!-- 没有表创建表 --> <!--        <property name="databaseSchemaUpdate" value="true"></property> --> <!--    </bean> -->  </beans>
然后在applicationContext.xml配置中新增配置如下: 
<!-- 配置activiti的数据源 -->     <bean id="dataSource2" class="org.springframework.jdbc.datasource.DriverManagerDataSource">         <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>         <property name="url" value="jdbc:mysql://127.0.0.1:3306/activiti?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;zeroDateTimeBehavior=convertToNull&amp;transformedBitIsBoolean=true"></property>         <property name="username" value="root"></property>         <property name="password" value="123456"></property>      </bean>  <!-- activiti事务管理 -->     <bean id="transactionManager"         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">         <property name="dataSource" ref="dataSource2" />     </bean>  <!-- 加载activiti引擎 -->     <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">         <property name="processEngineConfiguration" ref="processEngineConfiguration" />     </bean>     <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">         <property name="dataSource" ref="dataSource2" />         <property name="transactionManager" ref="transactionManager" />         <property name="databaseSchemaUpdate" value="true" />         <property name="jobExecutorActivate" value="false" />          <property name="activityFontName" value="微软雅黑"/>           <property name="labelFontName" value="微软雅黑"/>         <property name="mailServerHost" value="localhost"/>         <property name="mailServerPort" value="5025"/>     </bean>       <!-- 创建activiti提供的各种服务 -->     <!-- 工作流仓储服务 -->     <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="managementService" factory-bean="processEngine" factory-method="getManagementService" />     <!-- 表彰-->     <bean id="formService" factory-bean="processEngine" factory-method="getFormService" />     <!-- 工作流唯一服务 -->     <bean id="IdentityService" factory-bean="processEngine" factory-method="getIdentityService"/>

数据库的生成我是用代码生成,其实不用我下面的这段代码生成23张表也没事。因为我在配置文件中配置了

 <property name="databaseSchemaUpdate" value="true" />

这个属性就是 如果表不存在,自动创建表
启动的时候如果数据源库中没有activiti库以及表 则自动会生成activiti库以及23张表

ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();      /**使用代码创建工作流需要的23张表*/     @Test     public void createTable(){         ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();         //连接数据库的配置         processEngineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver");         processEngineConfiguration.setJdbcUrl("jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf8");         processEngineConfiguration.setJdbcUsername("root");         processEngineConfiguration.setJdbcPassword("123456");          /**             public static final String DB_SCHEMA_UPDATE_FALSE = "false";不能自动创建表,需要表存在             public static final String DB_SCHEMA_UPDATE_CREATE_DROP = "create-drop";先删除表再创建表             public static final String DB_SCHEMA_UPDATE_TRUE = "true";如果表不存在,自动创建表          */         processEngineConfiguration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);         //工作流的核心对象,ProcessEnginee对象         ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();         System.out.println("processEngine:"+processEngine);     }

由于我们项目要求流程这块要业务人员自定义流程(当时内心崩溃!!),所以初步设计打算用activiti modeler 编辑器作为用户的自定义流程编辑器(我是不信业务人员能用这个画出正确的流程图,当然后面我进行了一系列的改版和优化 终于改成能让一个傻子都能画出流程来着,主要是我前端太菜了 不然我自己写个编辑器)。

以上都是吐槽

下面我们把编辑器整合到我们项目中

(下班了。。明天继续更新)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!