栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

activiti学习之基础环境搭建

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

activiti学习之基础环境搭建

写在前面

本文介绍在spring环境中使用activiti。

1:pom

    
      junit
      junit
      4.12
    
    
    
      org.springframework
      spring-orm
      5.1.15.RELEASE
    
    
      org.aspectj
      aspectjweaver
      1.9.2
      runtime
    
    
    
      org.springframework
      spring-core
      5.1.15.RELEASE
    
    
    
      org.springframework
      spring-context
      5.1.15.RELEASE
    
    
      org.springframework
      spring-context-support
      5.1.15.RELEASE
    
    
    
      org.springframework
      spring-beans
      5.1.15.RELEASE
    
    
      org.springframework
      spring-web
      5.1.15.RELEASE
    
    
      mysql
      mysql-connector-java
      5.1.32
    
    
    
      com.alibaba
      druid
      1.1.12
    

    
      org.mybatis
      mybatis
      3.3.1
    
    
    
      org.mybatis
      mybatis-spring
      1.3.2
    
    
      org.slf4j
      slf4j-log4j12
      1.7.5
    
    
      cglib
      cglib
      3.2.5
    

    
    
      org.activiti
      activiti-engine
      5.22.0
    
    
      org.activiti
      activiti-spring
      5.22.0
    

2:配置文件 2.1:activiti.properties
#
db.driverClassName=com.mysql.jdbc.Driver
#
db.url=jdbc:mysql://localhost:3366/activitiTest?useUnicode=true&characterEncoding=UTF-8
#
db.username=root
#
db.password=root
2.2:spring-activiti.xml




        
        
            

                classpath:com/jh/activiti/activiti.properties
            
        
    

    
        
        
        
        
        
        
        
        
        
    

    
    
        
    

    

    

    
    
        
        
    
    
        
        
        
        
        
        
            
        
    

    
    
        
    

    
    

    
    
    
    
    
    
    


3:数据库初始化
// 创建数据库
@Test
public void test_createDatabase() {
    // 创建流程引擎配置信息对象
    ProcessEngineConfiguration pec = ProcessEngineConfiguration
            .createStandaloneProcessEngineConfiguration();
    // 设置数据库的类型
    pec.setDatabaseType("mysql");
    // 设置创建数据库的方式
//        ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE(true);//如果没有数据库表就会创建数据库表,有的话就修改表结构.
    // ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE(false): 不会创建数据库表
    // ProcessEngineConfiguration.DB_SCHEMA_UPDATE_CREATE_DROP(create-drop): 先创建、再删除.
    pec.setDatabaseSchemaUpdate("true");
    // 设置数据库驱动
    pec.setJdbcDriver("com.mysql.jdbc.Driver");
    // 设置jdbcURL
    pec.setJdbcUrl("jdbc:mysql://localhost:3366/activitiTest?useUnicode=true&characterEncoding=UTF-8");
    // 设置用户名
    pec.setJdbcUsername("root");
    // 设置密码
    pec.setJdbcPassword("root");
    // 构建流程引擎对象
    ProcessEngine pe = pec.buildProcessEngine(); // 调用访方法才会创建数据表
    // 调用close方法时,才会删除
    pe.close();
}

成功后会生成activiti需要用到的表,如下:

4:测试

搭建一个简单的流程,自己随意搭一个就行,如下是我的:

测试代码:

// @Autowired
private ProcessEngine processEngine;
// @Autowired
private static TaskService taskService;
// @Autowired
private RuntimeService runtimeService;
// @Autowired
private HistoryService historyService;
private static RepositoryService repositoryService;

@Before
public void prepareService() {
    ApplicationContext ac =
            new ClassPathXmlApplicationContext("classpath:com/jh/activiti/spring-activiti.xml");
    processEngine = ac.getBean(ProcessEngine.class);
    taskService = ac.getBean(TaskService.class);
    runtimeService = ac.getBean(RuntimeService.class);
    historyService = ac.getBean(HistoryService.class);
    repositoryService = ac.getBean(RepositoryService.class);
}


@Test
public void deploy() {
    Deployment deployment = repositoryService.createDeployment() // 创建部署
            .addClasspathResource("com/jh/activiti/jumpTo.bpmn20.xml") // 加载流程资源文件
            .name("测试任务退回") // 流程名称
            .deploy(); // 部署
    System.out.println("流程部署ID:" + deployment.getId());
    System.out.println("流程部署Name:" + deployment.getName());
}


@Test
public void start() {
    // 不会在act_ru_task表中生成数据,即不会生成任务,但是会在act_ru_execution表中生成数据,可以通过queryExecution查询
    // , 通过completeTask执行
    ProcessInstance pi = runtimeService.startProcessInstanceByKey("jumpTo"); // 流程定义表的KEY字段值
    System.out.println("流程实例ID:" + pi.getId());
    System.out.println("流程定义ID:" + pi.getProcessDefinitionId());
}

@Test
public void complete() {
    // 直属领导审批
//        taskService.complete("677507");
    // 部门领导审批
//        taskService.complete("680007");
    // 董事长审批
    taskService.complete("682502");
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/305803.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号