Flowable初体验——Spring Boot集成

注:我这里依赖使用Maven管理。

一、我们需要先引入相关依赖。


            org.flowable
            flowable-spring-boot-starter
            6.4.2
            
                
                    org.mybatis
                    mybatis
                
            
        

这里我引入了Flowable相关的maven依赖,而且大家可以看出我这里排除了mybatis的依赖。这是因为在引入Flowable依赖时,也会引入mybatis的依赖,而mybatis的依赖我已经添加了,所以这里会造成冲突,故只需要引入Flowable依赖时不引入mybatis依赖,mybatis的依赖我们还是像以前一样单独引入就好了。

Flowable需要数据库来存储数据。所以我们还需要引入数据库的依赖。因为我这个项目之前就是使用的mysql数据库,依赖都已经存在了,所以就可以跳过了。

如果没有引入数据库依赖的,可以引入H2数据库或其他数据库依赖。



	com.h2database
	h2
	1.4.197

二、启动项目

Flowable初体验——Spring Boot集成_第1张图片

 这个就不多说,相信学过Spring Boot的都知道。

那我们来说说,在启动的过程中Flowable都替我们干了什么吧!

在启动时,会发生:

  • 自动创建了数据库所需要的文件,并传递给Flowable流程引擎配置。
  • 创建并暴露了Flowable的ProcessEngine、CmmnEngine、DmnEngine、FormEngine、ContentEngine及IdmEngine bean

  • 所有的Flowable服务都暴露为Spring bean

  • 创建了Spring Job Executor

 并且:

  • processes目录下的任何BPMN 2.0流程定义都会被自动部署。创建processes目录,并在其中创建示例流程定义。

  • cases目录下的任何CMMN 1.1事例都会被自动部署。

  • forms目录下的任何Form定义都会被自动部署。

接下来,我们在resources文件夹下新建processes文件夹并在其下新建 one-task-process.bpmn20.xml文件




    
        
        
        
        
        
    

 然后添加下列代码,以测试部署是否生效。CommandLineRunner是一个特殊的Spring bean,在应用启动时执行:

@Bean
    public CommandLineRunner init(final RepositoryService repositoryService,
                                  final RuntimeService runtimeService,
                                  final TaskService taskService) {
        return new CommandLineRunner() {
            @Override
            public void run(String... args) throws Exception {
                System.out.println("Number of process definitions : "
                        + repositoryService.createProcessDefinitionQuery().count());
                System.out.println("Number of tasks : " + taskService.createTaskQuery().count());
                runtimeService.startProcessInstanceByKey("oneTaskProcess");
                System.out.println("Number of tasks after process start: "
                        + taskService.createTaskQuery().count());
            }
        };
    }

会得到这样的输出:

 

证明部署成功! 

你可能感兴趣的:(Flowable,spring,boot)