【Activiti系列学习】--18.工作流平台搭建

一、工作流平台搭建步骤讲解

  • 需求分析
  • 平台搭建
  • 电商业务建模

需求分析与技术方案:

当从activiti-ui工程开发不能满足需求的时候,我们从activiti-engine从零开始搭建。

基于Activiti-ui工程升级搭建平台

  • 升级activiti-spring-boot模块依赖版本
  • 改造activiti-ui为Spring boot工程
  • 基于改造后的activiti-ui创建workflow工程

创建自己的工作流平台开发步骤

  • 创建新的独立工程workflow
  • 添加依赖(6.0.0)及配置文件
  • 集成web相关资源文件

工作流平台搭建步骤:

IDEA命令行工具

(一)创建分支

1.D:\IDEA\Activiti>git checkout -b v6.0 activiti-6.0.0

切换到新的分支

2.再创建一个分支:

D:\IDEA\Activiti>git checkout -b boot activiti-6.0.0

(二)修改版本信息为6.0.0-boot2

3.进入模块:

cd modules/activiti-spring-boot

4.修改该模板pom.xml中的版本号(不依赖于副版本)

然后输入:mvn versions:set -DnewVersion=6.0.0-boot2

5.依次安装:

mvn clean install source:jar -Dmaven.test.skip=true

先清理,然后安装,并且跳过了maven的test

6.手动修改activiti-spring-boot中的版本号为6.0.0

(会报错)继续执行之前的安装命令mvn clean install source:jar -Dmaven.test.skip=true

在最下面一个pom.xml中添加:

在全局查找activiti-spring-boot中,替换project.version为6.0.0

在最下面一个pom.xml中全局查找,替换project.version为activiti.version

执行 mvn clean install source:jar -Dmaven.test.skip=true

(同理)修改activiti-ui子模块

指定版本:

修改版本命令:

mvn versions:set -DnewVersion=6.0.0-boot2

执行安装:

mvn clean install source:jar -Dmaven.test.skip=true

(三)基于activiti-ui模块运行activiti-app

D:\IDEA\Activiti\mo长度cd dules\activiti-ui>cd activiti-app

编译一下:mvn clean tomcat7:run

启动成功后,浏览器中访问:

http://localhost:9999/activiti-app/

能够正常访问activiti-app,说明对于版本的修改没有问题。

(四)对activiti-app进行改造:

添加结构目录:

将java目录标记为java 源码目录

在org.activiti.app.ui目录中新建java 类为:ActivitiUIApplication

在注解activiti-app上加上spring-boot依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>1.2.6.RELEASE</version>
</dependency>

添加进去后刷新一下,编写代码:

package org.activiti.app.ui;

import org.activiti.app.conf.ApplicationConfiguration;
import org.activiti.app.servlet.ApiDispatcherServletConfiguration;
import org.activiti.app.servlet.AppDispatcherServletConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.ServletRegistrationBean;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

@SpringBootApplication//添加spring-boot依赖
@Import({ApplicationConfiguration.class})//引入一个java配置文件
public class ActivitiUIApplication extends SpringBootServletInitializer { //将它继承自SpringBootServlet的启动器
    public static void main(String[] args) { //main方法的入口
        SpringApplication.run(ActivitiUIApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(ActivitiUIApplication.class);//builder中指定该类
    }

    @Bean //配置子容器api
    public ServletRegistrationBean apiDispatcher(){
        DispatcherServlet api = new DispatcherServlet();
        api.setContextClass(AnnotationConfigWebApplicationContext.class);//设置实例化容器的实现类
        api.setContextConfigLocation(ApiDispatcherServletConfiguration.class.getName());

        ServletRegistrationBean registrationBean = new ServletRegistrationBean();
        registrationBean.setServlet(api);
        registrationBean.addUrlMappings("/api/*");
        registrationBean.setLoadOnStartup(1);
        registrationBean.setAsyncSupported(true);//设置为异步
        registrationBean.setName("api");

        return registrationBean;
    }

    @Bean //配置子容器app
    public ServletRegistrationBean appDispatcher(){
        DispatcherServlet api = new DispatcherServlet();
        api.setContextClass(AnnotationConfigWebApplicationContext.class);//设置实例化容器的实现类
        api.setContextConfigLocation(AppDispatcherServletConfiguration.class.getName());

        ServletRegistrationBean registrationBean = new ServletRegistrationBean();
        registrationBean.setServlet(api);
        registrationBean.addUrlMappings("/app/*");
        registrationBean.setLoadOnStartup(1);
        registrationBean.setAsyncSupported(true);//设置为异步
        registrationBean.setName("app");

        return registrationBean;
    }
}

在Activiti-app的pom.xml中添加插件:

<plugin>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-maven-plugin</artifactId>

    <version>1.2.6.RELEASE</version>

</plugin>
发布了66 篇原创文章 · 获赞 32 · 访问量 8527

猜你喜欢

转载自blog.csdn.net/shao_yc/article/details/105329388