一、工作流平台搭建步骤讲解
- 需求分析
- 平台搭建
- 电商业务建模
需求分析与技术方案:
当从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>