需求在实际项目使用flowable时,一般公司都有自己的人员权限系统,并不会直接使用flowable的idm模块,本节内容记录,如何让flowable调用自己的权限系统
idm基本操作核心类:IdentityService通过该类可以获取,在流程的整个生命周期中的相关人,和组信息
例如:
获取可提交流程的人:
1List<User> authorizedUsers = identityService.getPotentialStarterUsers(processDefId);
获取组内的人:
1List<User> userList = identityService.createUserQuery().memberOfGroups(groupIds).list();
两个核心的方法,createUserQuery()和createUserQuery(),用来构建获取人和组的方法
实现类IdmIdentityServiceImpl上面人员权限认证服务的默认实现类
1public class IdmIdentityServiceImpl extends Co ...
简介轻量级工作流引擎,使用Java编写,Flowable是Activiti的fork
github地址:https://github.com/flowable/flowable-engine
开源文档:https://wwv.flowable.com/open-source/docs/bpmn/ch02-GettingStarted/
6.5.0版本中文文档:https://jeesite.gitee.io/front/flowable/6.5.0/bpmn/index.html
Hello WorldGitee地址:https://gitee.com/aacopy/flowable-learn.git
创建一个spring boot项目需要加入 spring web,
本示例,spring boot 2.6.1,flowable 6.7.1, mysql 5.7
创建数据库新建一个mysql数据库,名称为flowable_learn
编写示例
加入maven依赖
123456789<dependency> <groupId>mysql</grou ...
1. 简介2. 安装2.1 5.7版本安装指令1234567891011docker run -p 3306:3306 --name mysql5.7 --privileged=true \-v /home/dockerdata/mysql5.7/conf:/etc/mysql \-v /home/dockerdata/mysql5.7/logs:/var/log/mysql \-v /home/dockerdata/mysql5.7/data:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD=aacopy.cn \-e TZ=Asia/Shanghai \-d mysql:5.7 \--character-set-server=utf8mb4 \--collation-server=utf8mb4_unicode_ci \--lower_case_table_names=1 \--sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZER ...
1. 简介应用容器引擎,可以快速部署启动应用,实现虚拟化,完整资源隔离
官方地址:https://www.docker.com/
仓库地址:https://hub.docker.com/
dockers版本:
企业版本:docker EE
社区版本:docker CE
2. 安装2.1 CentOS安装指定版本1234567891011121314151617181920212223242526272829303132333435#添加依赖yum install -y yum-utils device-mapper-persistent-data lvm2#配置yum源yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#查看docker版本yum list docker-ce --showduplicates | sort -r#安装指定版本的dockeryum -y install docker-ce-20.10.10-3.el7#安装完成, ...
map作用:将流中的每一个元素转换为另外一类元素
1234List<User> userList = new ArrayList<>();List<UserDTO> result = userList.stream() .map(user -> new UserDTO(user.getName(), user.getAge())) .collect(Collectors.toList());
filter作用:过滤流中的每一个元素,符合条件的保留下来
123List<User> result = userList.stream() .filter(user -> user.getAge()>18) .collect(Collectors.toList());
sorted作用:对元素进行排序
自然排序sorted():
123List<User> result = userList.stream() .sorted() . ...
简介 lambda表达式就是函数编程,就是将一个函数作为方法的入参,本质上是以匿名内部类的方式实现。
eg:创建线程
1new Thread(() -> System.out.println("Hello AaCopy")).start();
eg:集合排序
12List<String> list = new ArrayList<>();Collections.sort(list, (a, b) -> b.compareTo(a));
语法(params) -> {expression}
params:
参数列表数据类型省略
没有参数列表时,使用()
只有一个参数时,()可以省略,eg:a -> System.out.println(a)
有多个参数时,(a, b)-> a+b
expression:
只有一行代码时,{}、return、分号都可以省略
有多行代码时,和正常方法一样写法
使用自定义函数式接口
定义函数(行为)接口,接口需要添加注解@FunctionalInterface,接口内 ...
1. 安装VMware Workstation
下载地址:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html
安装
激活:16版本的序列号:ZF3R0-FHED2-M80TY-8QYGC-NPKYF
2. 下载centOS7镜像
下载地址:http://mirrors.aliyun.com/centos/7/isos/x86_64/
下载标准安装版本DVD.iso,如:CentOS-7-x86_64-DVD-2009.iso
3. 新建centOS7虚拟机
打开VMware,选择创建新的虚拟机
选择稍后安装操作系统
选择linux 和 centos7 64
点击完成
在虚拟机页面点击编辑虚拟机设置
可以移除USB,声卡,打印机等无用的设备
选择CD/DVD
使用ISO映像文件,选择iso文件
点击确定
点击启动虚拟机
语言选择英语的就可以 continue
date&time选择亚洲,选择down
选择INSTALLATION DESTINATION, ...
1. 简介1.1 什么是网关 API Gateway,是系统的唯一对外的入口,介于客户端和服务器端之间的中间层,处理非业务功能,提供路由请求、鉴权、监控、缓存、限流等功能
官网:https://spring.io/projects/spring-cloud-gateway
基于Spring5+Reactor技术开发的网关,性能强劲基于Reactor+WebFlux、功能多样。
1.2 Gateway项目创建
创建module,名称为api-gateway
修改pom,添加依赖
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" ...
1. Sentinel简介官方地址:https://github.com/alibaba/Sentinel/
中文文档:https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D
Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
Sentinel 分为两个部分:
核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。
控制台(Dashboard)基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应用容器。
2. Sentinel控制台(1.8.1)下载地址:https://github.com/alibaba/Sentinel/releases
中文文档:https://github.com/alibaba/Sentinel/wiki/%E6%8E%A7%E5%88%B6%E5%8F%B0
下载后的文件:sentinel ...
1. 什么是nacos官方地址:https://nacos.io/zh-cn/index.html
2. 安装笔记安装版本 2.0.2
2.1 创建数据库执行脚本2.1.1 创建数据库:nacos_config1CREATE DATABASE `nacos_config` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_bin';
2.1.2 执行建表脚本脚本地址:https://github.com/alibaba/nacos/blob/2.0.2/distribution/conf/nacos-mysql.sql
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021 ...