当前位置: 首页 > news >正文

若依集成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.lryc.cn/news/502770.html

相关文章:

  • STM32模拟I2C通讯的驱动程序
  • Unity简单操作及使用教程
  • 网络安全法-监测预警与应急处置
  • qt 设置系统缩放为150%,导致的文字和界面的问题
  • Scala的正则表达式二
  • 软考系分:今日成绩已出
  • DevExpress WPF中文教程:Grid - 如何移动和调整列大小?(一)
  • Docker 安装 sentinel
  • PyCharm 2024.1 解锁版 (Python集成开发IDE)详细安装步骤
  • SQL中的函数介绍
  • 【工业机器视觉】基于深度学习的水表盘读数识别(2-数据采集与增强)
  • 爬虫基础知识点
  • 高效利用资源:分布式有状态服务的高可靠性设计
  • aws(学习笔记第十六课) 使用负载均衡器(ELB)解耦webserver以及输出ELB的日志到S3
  • 关于php://filter过滤器
  • 数据安全法-政务数据安全与开放
  • MySQL数据库的数据类型
  • 前端H5移动端基础框架模板 :Vue3 + Vite5 + Pinia + Vant4 + Sass + 附源码
  • 什么是线程安全
  • ️️️ 避坑指南:如何修复国密gmssl 库填充问题并提炼优秀加密实践20241212
  • 深度学习实验十四 循环神经网络(1)——测试简单循环网络的记忆能力和梯度爆炸实验
  • AWS re:Invent 发布新的数据库产品 Aurora DSQL; NineData SQL编程大赛开始; 腾讯云支持PostgreSQL 17
  • STM32 OLED屏幕驱动详解
  • Python字符串常用操作
  • Redis 生产问题(重要)
  • 前端 —— Git
  • 【GL006】Linux 之 shell
  • JS听到了强运的回响
  • Linux下MySQL的简单使用
  • .net core使用AutoMapper