Activiti工作流学习笔记1-集成到springmvc

最近因为工作需要,在学习Activiti,记下相关笔记,方便日后查询,如有错误请指出,共同进步。

相关资料:Activiti用户手册学习Activiti整合到springMVC项目的详细配置Activiti源码

先准备一个springmvc项目,然后下载Activiti安装包,然后解压,将解压文件下的libs目录包都导入springmvc项目里(记得先复制到WEB-INF/lib目录里再导入到项目里,不然启动可能会报ClassNOtFoundException)。

同时还需要一些额外的依赖:

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
		<dependency>
		    <groupId>org.mybatis</groupId>
		    <artifactId>mybatis</artifactId>
		    <version>3.2.7</version>
		</dependency>
		<!-- jackson-core-2.7.0.jar、jackson-databind-2.7.0.jar -->	  
		<dependency>  
		    <groupId>com.fasterxml.jackson.core</groupId>  
		    <artifactId>jackson-core</artifactId>  
		    <version>2.7.0</version>  
		</dependency>  
		<dependency>  
		    <groupId>com.fasterxml.jackson.core</groupId>  
		    <artifactId>jackson-databind</artifactId>  
		    <version>2.7.0</version>  
		</dependency>         
		<dependency>
		  <groupId>com.fasterxml.jackson.datatype</groupId>
		  <artifactId>jackson-datatype-joda</artifactId>
		  <version>2.3.0-rc1</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
		<dependency>
		    <groupId>org.apache.commons</groupId>
		    <artifactId>commons-lang3</artifactId>
		    <version>3.4</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
		<dependency>
		    <groupId>org.springframework</groupId>
		    <artifactId>spring-jdbc</artifactId>
		    <version>4.3.14.RELEASE</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
		    <groupId>mysql</groupId>
		    <artifactId>mysql-connector-java</artifactId>
		    <version>5.1.21</version>
		</dependency>

依赖导入完之后就是配置:
先在/WEB-INF/spring/目录下加一个xml文件,spring-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.xsd">
	
	<!-- 注意使用的 processEngineConfiguration bean 是 org.activiti.spring.SpringProcessEngineConfiguration 类。 -->
  <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
	 <!-- 设置建表策略,如果没有表,自动创建表 -->
    <property name="databaseSchemaUpdate" value="true" />
    <!-- 指定数据库类型 -->
    <property name="databaseType" value="mssql" />
    <!-- 数据源 -->
    <property name="dataSource" ref="dataSource" /> 
    <!-- 配置事务管理器,统一事务 -->
    <property name="transactionManager" ref="transactionManager" />
  </bean>
  	
  	<!-- mybatis事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
  	<!-- mybatis配置数据源 -->
	<!--定义一个jdbc数据源,创建一个驱动管理数据源的bean -->
    <bean id="dataSource"
          class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/activity?createDatabaseIfNotExist&useUnicode=true&characterEncoding=utf8" />
        <property name="username" value="******" />
        <property name="password" value="******" />
    </bean>

	<!-- 创建流程引擎对象 -->
   <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
	  <property name="processEngineConfiguration" ref="processEngineConfiguration" />
	</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"/> -->
</beans>

然后在web.xml里加上这个配置

<!-- 指定核心文件文件位置 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/spring/root-context.xml,/WEB-INF/spring/spring-activiti.cfg.xml</param-value>
	</context-param>

然后是Activiti的数据库,我用的是mysql数据库,建表语句在Activiti解压过的activiti-5.22.0\database\create文件夹里,里面有各种数据库的建表语句:


这些做完之后可以用main方法测试一下:

  // 1.创建Activiti配置对象的实例
        ProcessEngineConfiguration configuration = ProcessEngineConfiguration
                .createStandaloneProcessEngineConfiguration();
        // 2.设置数据库连接信息

        // 设置数据库地址
     configuration
                .setJdbcUrl("jdbc:mysql://localhost:3306/activitymysql?createDatabaseIfNotExist&useUnicode=true&characterEncoding=utf8");
        // 数据库驱动
        configuration.setJdbcDriver("com.mysql.jdbc.Driver");
        // 用户名
        configuration.setJdbcUsername("root");
        // 密码
        configuration.setJdbcPassword("chenyong");

        // 设置数据库建表策略
        /**
         * DB_SCHEMA_UPDATE_TRUE:如果不存在表就创建表,存在就直接使用
         * DB_SCHEMA_UPDATE_FALSE:如果不存在表就抛出异常
         * DB_SCHEMA_UPDATE_CREATE_DROP:每次都先删除表,再创建新的表
         */
      /*  configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);*/

        // 3.使用配置对象创建流程引擎实例(检查数据库连接等环境信息是否正确)
        ProcessEngine processEngine = configuration.buildProcessEngine();

        System.out.println(processEngine);
如果能正常打印,并且能在tomcat启动应该就可以了。


猜你喜欢

转载自blog.csdn.net/weixin_39591965/article/details/80928005