若依集成Uflo2工作流引擎

文章目录

  • 1. 创建子模块并添加依赖
    • 1.1 新建子模块 ruoyi-uflo
    • 1.2 引入 Uflo2 相关依赖
  • 2. 配置相关 config
    • 2.1 配置 ServletConfig
    • 2.2 配置 UfloConfig
    • 2.3 配置 TestEnvironmentProvider
  • 3. 引入Uflo配置文件
  • 4. 启动并访问

Uflo2 是由 BSTEK 自主研发的一款基于 Java 的轻量级工作流引擎,采用 Spring 作为核心框架,并以 Hibernate 作为数据持久层,能够在大多数主流应用服务器和数据库上运行。本文将详细介绍如何在若依项目中集成 Uflo2 工作流引擎。

1. 创建子模块并添加依赖

1.1 新建子模块 ruoyi-uflo

可以参照若依框架的创建子模块教程来新建子模块。

1.2 引入 Uflo2 相关依赖

在新建的 ruoyi-uflo 模块的 pom.xml 中,添加 uflo2 的依赖配置:

<description>Uflo2 工作流管理模块
</description><dependencies><!-- 若依的通用工具 --><dependency><groupId>com.ruoyi</groupId><artifactId>ruoyi-common</artifactId></dependency><!-- 引入 Uflo2 的依赖 --><dependency><groupId>com.bstek.uflo</groupId><artifactId>uflo-console</artifactId><version>2.1.4</version></dependency>
</dependencies>

2. 配置相关 config

2.1 配置 ServletConfig

在 ruoyi-uflo/src/main/java/com/ruoyi/ruoyiuflo/config/ 路径下,创建 ServletConfig.java 文件,注册 UfloServlet:

package com.ruoyi.ruoyiuflo.config;import com.bstek.uflo.console.UfloServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class ServletConfig {@Beanpublic ServletRegistrationBean<UfloServlet> registerUfloServlet() {return new ServletRegistrationBean<>(new UfloServlet(), "/uflo/*");}
}

2.2 配置 UfloConfig

在同一目录下新增 UfloConfig.java 文件,配置 Hibernate 的 SessionFactory及事务管理器:

package com.ruoyi.ruoyiuflo.config;import org.hibernate.SessionFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.hibernate5.HibernateTransactionManager;
import org.springframework.orm.hibernate5.LocalSessionFactoryBean;import javax.sql.DataSource;
import java.io.IOException;
import java.util.Properties;@Configuration
public class UfloConfig {@Bean("localSessionFactoryBean")public LocalSessionFactoryBean sessionFactory(DataSource dataSource) throws IOException {LocalSessionFactoryBean sessionFactoryBean = new LocalSessionFactoryBean();sessionFactoryBean.setDataSource(dataSource);sessionFactoryBean.setPackagesToScan("com.bstek.uflo.model*");Properties properties = new Properties();properties.put("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");properties.put("hibernate.show_sql", false);properties.put("hibernate.hbm2ddl.auto", "update");properties.put("hibernate.jdbc.batch_size", 100);sessionFactoryBean.setHibernateProperties(properties);return sessionFactoryBean;}@Bean("ufloTransactionManager")public HibernateTransactionManager transactionManager(SessionFactory sessionFactory) {HibernateTransactionManager transactionManager = new HibernateTransactionManager();transactionManager.setSessionFactory(sessionFactory);return transactionManager;}
}

2.3 配置 TestEnvironmentProvider

在 ruoyi-uflo/src/main/java/com/ruoyi/ruoyiuflo/env/ 目录下创建 TestEnvironmentProvider.java,实现 EnvironmentProvider 接口,用于配置工作流的环境:

package com.ruoyi.ruoyiuflo.env;import com.bstek.uflo.env.EnvironmentProvider;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.PlatformTransactionManager;import javax.annotation.Resource;@Component
public class TestEnvironmentProvider implements EnvironmentProvider {@Autowiredprivate SessionFactory sessionFactory;@Resource(name = "ufloTransactionManager")private PlatformTransactionManager transactionManager;@Overridepublic SessionFactory getSessionFactory() {return sessionFactory;}@Overridepublic PlatformTransactionManager getPlatformTransactionManager() {return transactionManager;}@Overridepublic String getLoginUser() {return null;}@Overridepublic String getCategoryId() {return "anonymous";}
}

3. 引入Uflo配置文件

在若依主模块 ruoyi-admin 的启动类 RuoYiApplication.java 中,引入 uflo-console-context.xml 配置文件:

@ImportResource("classpath:uflo-console-context.xml")

4. 启动并访问

当项目启动后,Uflo2 会自动在数据库中创建相关表
在这里插入图片描述
您可以通过以下链接访问 Uflo2 的管理页面:
在这里插入图片描述
在这里插入图片描述
通过以上步骤,Uflo2 已成功集成到若依项目中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/488774.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux启动流程

linux 启动详细流程 启动流程主要分为四个阶段&#xff1a;BIOS与UEFI->bootloader->kernel->busybox()init,下面从这四个方面展开 BIOS与UEFI 由于计算机启动是一个很矛盾的过程&#xff0c;即必须先运行程序&#xff0c;然后计算机才能启动&#xff0c;但是计算机不…

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 多图推理

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 多图推理 flyfish 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_LoRA配置如何写 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_单图推理 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_原模型_单图推理 基于Q…

【1211更新】腾讯混元Hunyuan3D-1文/图生3D模型云端镜像一键运行

目录 项目介绍 显存占用 11月21 新增纹理烘焙模块Dust3R 烘焙相关参数&#xff1a; AutoDL云端镜像 启动说明 标准模型下载 【1212更新】腾讯混元Hunyuan3D-1文图生3D模型云端镜像一键运行 项目介绍 https://github.com/Tencent/Hunyuan3D-1 腾讯混元 3D 生成模型,支持…

大数据笔记之flink-cdc实时同步数据

大数据笔记之flink-cdc实时同步数据(mysql -->doris) 一、基本概念 Flink CDC 是一个基于流的数据集成工具&#xff0c;旨在为用户提供一套功能更加全面的编程接口&#xff08;API&#xff09;。 该工具使得用户能够以 YAML配置文件的形式&#xff0c;优雅地定义其 ETL&…

【Qt】qt基础

目录 一、使用Qt Creator创建qt项目 二、项目文件解析 三、Qt中创建图形化界面的程序的两种方法 四、对象树 五、Qt中处理打印乱码问题的利器&#xff1a;qDebug() 一、使用Qt Creator创建qt项目 1.选择项目模板 选中第一类模板Application(Qt应用程序&#xff0c;包含普…

MySQL(五)--- 事务

1、CURD操作不加控制时,可能会出现什么问题 即:类似于线程安全问题,可能会导致数据不一致问题。 因为,MySQL内部本身就是多线程服务。 1.1、CURD满足什么属性时,才能避免上述问题 1、买票的过程得是原子的吧。 2、买票互相应该不能影响吧。 3、买完票应该要永久有效吧。…

国科大智能设备安全-APK逆向分析实验

APK逆向分析实验 使用APK常用逆向分析工具&#xff0c;对提供的移动应用程序APK文件进行逆向分析&#xff0c;提交逆向后代码和分析报告。具体任务如下&#xff1a; 任务一&#xff1a;安装并熟悉Apktool、Jadx等APK常用逆向工具的使用方法&#xff0c;对提供的Facebook Updat…

欧拉计划 Project Euler(16-20)题解

欧拉计划16-20 pro 16pro17pro18pro19pro20 pro 16 思路 大数乘法模拟即可 #include <bits/stdc.h>using namespace std;using ll long long;const int N 5005; // 1366 // 2^1000 1071508607186267320948425049060001810561404811705533607443750388370351051124936…

(软件测试文档大全)测试计划,测试报告,测试方案,压力测试报告,性能测试,等保测评,安全扫描测试,日常运维检查测试,功能测试等全下载

1. 引言 1.1. 编写目的 1.2. 项目背景 1.3. 读者对象 1.4. 参考资料 1.5. 术语与缩略语 2. 测试策略 2.1. 测试完成标准 2.2. 测试类型 2.2.1. 功能测试 2.2.2. 性能测试 2.2.3. 安全性与访问控制测试 2.3. 测试工具 3. 测试技术 4. 测试资源 4.1. 人员安排 4.2. 测试环境 4.2.…

通过PS和Unity制作2D动画之一:创建形象

1、通过路径画出轮廓 使用路径的过程中&#xff0c;需要注意&#xff1a; 1&#xff09;如果使用形状工具作图&#xff0c;比如使用椭圆工具画正圆形&#xff0c;需要设置其属性为“路径”。 2&#xff09;使用路径选择工具&#xff0c;再按住Alt键点击某个路径&#xff0c;可…

Qt | 开发工具(top1)

Qt Creator 跨平台、完整的集成开发环境(IDE)&#xff0c;供应用程序开发者创建用于多个桌面、嵌入式和移动设备平台的应用程序。 Qt Linguist 一套将Qt C和Qt Quick应用程序翻译成本地语言的工具。 qmake Qt自动化构建工具&#xff0c;简化了不同平台的构建过程。…

纯CSS实现文本或表格特效(连续滚动与首尾相连)

纯CSS实现文本连续向左滚动首尾相连 1.效果图&#xff1a; 2.实现代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, init…

Qt之点击鼠标右键创建菜单栏使用(六)

Qt开发 系列文章 - menu&#xff08;六&#xff09; 目录 前言 一、示例演示 二、菜单栏 1.MenuBar 2.Menu 总结 前言 QMainWindow是一个为用户提供主窗口程序的类&#xff0c;包含一个菜单栏&#xff08;menubar&#xff09;、多个工具栏(toolbars)、一个状态栏(status…

UE4_控件蓝图_制作3D生命血条

一&#xff1a;效果图如下&#xff1a; 二、实现步骤&#xff1a; 1、新建敌人 右键蓝图类 选择角色&#xff0c; 重命名为BP_Enemytest。 双击打开&#xff0c;配置敌人网格体 修改位置及朝向 效果如下&#xff1a; 选择合适的动画蓝图类&#xff1a; 人物就有了动作&#x…

自己玩虚拟机:vagrant,virtual box,centos

vagrant 访问Vagrant官网 https://www.vagrantup.com/ 点击Download Windows&#xff0c;MacOS&#xff0c;Linux等 选择对应的版本 AMD64 (x86_64) I686 (x86) 傻瓜式安装 命令行输入vagrant&#xff0c;测试是否安装成功 vagrant -v 可以查看当前版本 virtual box 访…

【密码学】BUUCTF Crypto 1 - 12 题 WriteUp

今天&#xff0c;我在 BUUCTF 网站的 crypto section 开启了一场充满挑战的密码学之旅。 这次我一口气完成了 12 个板块的任务&#xff0c;虽然耗时较长&#xff0c;但每一次解密成功的瞬间都让我无比满足&#xff0c;那种沉浸在密码世界里的感觉真的很棒。 接下来&#xff0…

云和恩墨 zCloud 与华为云 GaussDB 完成兼容性互认证

近日&#xff0c;云和恩墨&#xff08;北京&#xff09;信息技术有限公司&#xff08;以下简称&#xff1a;云和恩墨&#xff09;的多元数据库智能管理平台 zCloud 与华为云计算技术有限公司&#xff08;以下简称&#xff1a;华为云&#xff09;的 GaussDB 数据库完成了兼容性互…

FPGA开发verilog语法基础3

文章目录 主体内容1 模块的结构与调用2 语句2.1 结构语句2.1.1 initial语句2.1.2 always语句 2.2 赋值语句2.2.1 阻塞赋值()2.2.2 非阻塞赋值(<) 2.3 条件语句2.3.1 if 语句2.3.2 case 语句 3 状态机3.1 状态空间定义3.2 状态跳转3.3 下个状态判断3.4 各个状态下的动作3.5 状…

复原IP地址 什么是运算符重载? 如何在 C++ 中进行运算符重载?运算符重载在面向对象编程中的好处是什么?getline方法

getline方法 getline 是一个强大的函数&#xff0c;主要用于从输入流中按行读取数据或基于自定义分隔符提取字符串。它是 C 标准库的一部分&#xff0c;定义在头文件 <string> 中。 语法 std::getline(istream& input, std::string& str);input&#xff1a;输…

基于Springboot企业oa管理系统【附源码】

基于Springboot企业oa管理系统 效果如下&#xff1a; 系统主页面 用户管理页面 公告信息管理页面 客户关系管理页面 车辆信息管理页面 工资信息管理页面 文件信息管理页面 上班考勤管理页面 研究背景 随着信息化时代的到来和企业OA管理理念的更新&#xff0c;企业面临着日益…