- 博客(55)
- 资源 (1)
- 收藏
- 关注
原创 SpringBoot整合Activiti7——实战之放假流程(会签)
将启动流程后的流程实例ID更换到下面。将启动流程后的流程实例ID更换到下面。
2024-04-18 17:28:13
1215
原创 SpringBoot整合Activiti7——实战之请假流程(普通)
请假流程:开始-填写请假单-部门审批-结束。将启动流程后的流程实例ID更换到下面。将启动流程后的流程实例ID更换到下面。将启动流程后的流程实例ID更换到下面。
2024-03-12 17:18:06
1395
原创 SpringBoot整合Activiti7——错误事件(十一)
文章目录错误事件开始事件边界事件结束事件代码实现开始事件xml文件测试流程流程执行步骤边界与结束事件xml文件自定义错误监听器测试流程流程执行步骤错误事件好像都是中断的。非中断没测出来!!!<!-- 定义错误 --><error id="error1" name="errorCode1" errorCode="123456"/><error id="error2" name="errorCode2" errorCode="123456"/>开始事件
2023-12-01 14:44:06
722
原创 SpringBoot整合Activiti7——定时器事件(九)
需要开启异步任务配置:全局配置类中 触发时间后会在 表中记录,事件结束后自动删除。遵循ISO 8601标准时间段P表示日期的开始(年月日),T表示时间的开始(时分秒)
2023-11-14 10:01:11
1830
5
原创 SpringBoot整合Activiti7——全局监听器(八)
运行 startProcess,可以看到监听到任务节点1的创建和分配事件。全局配置类设置(config.setEventListeners())它是引擎范围的事件监听器,可以捕获所有的Activiti事件。启动流程动态添加并且可以指定要监听的事件类型(推荐)运行 deployProcess。枚举类中包含全部事件类型。spring bean配置。表中看到相关的日志记录。
2023-11-03 17:02:56
1704
原创 SpringBoot整合Activiti7——任务监听器(七)
运行 startProcess,可以看到首先监听到任务节点1分配的事件,然后再是创建任务事件(因为有多个监听器顺序不一致)。运行 completeTask,首先完成的是节点1任务,可以看到监听器监听到任务完成的事件。任务监听器可以在任务创建、任务分配、任务完成、任务删除发生时触发,从而执行相应的逻辑。运行 deployProcess。
2023-10-24 23:07:04
1913
3
原创 SpringBoot整合Activiti7——执行监听器(六)
示例:开始 -> 节点1 -> 节点2 -> 结束·创建监听器class方法expression方法delegateExpression测试流程部署流程运行 deployProcess运行 startProcess,可以看到执行监听器的监听到的顺序,包括启动、顺序流、节点。运行 completeTask,首先完成的是任务节点1,可以看到end任务节点1 - take顺序流2 - start任务节点2再次运行 completeTask,完成任务节点2,可以看到结束看整个执行流程。
2023-10-17 11:55:18
1258
原创 SpringBoot整合Activiti7——流程变量(五)
任务办理时设置local流程变量,当前运行的流程实例只能在该任务结束前使用,任务结束该变量无法在当前流程实例使用,可以通过查询历史任务查询。设置完后只有该task可见。(或者taskService.setVariableLocal设置)临时变量不做持久化存储,也就是不存储数据库。(taskService.setTransientVariable)启动实例时设置的变量(或者taskService.setVariable设置),设置完后流程全局可见。
2023-10-07 14:01:51
711
原创 SpringBoot整合Activiti7——代理/候选人/候选组(四)
用来把一个群体的人指定为一个任务的权限人,对应的是activiti中的用户组,分配一个用户组id到某个任务上,可以指定整个组的人为该任务的候选人。只要任务还未被签收,候选组内的任意用户都可以签收该任务;一旦任务被签收,候选组内的其他用户就无法查看与签收该任务咯。如果候选组中存在多个用户,那么只有其中的某个用户签收了任务,那么其它用户就看不到该任务。这里的candidateUsers是一个流程变量,以list的形式存放了候选人列表。一个任务可以设置多个候选人,候选人在业务上指的是有权对该任务进行操作的群体。
2023-09-16 09:43:57
4068
1
原创 SpringBoot整合Activiti7——配置与启动(一)
Activiti7只是对BPMN2.0规范实现的一个java框架而已,他是一个工作流程控制和管理框架,就是来处理系统中的业务流程的,对整个业务系统起到辅助和支持作用。一般有两种存在方式,一种是和业务代码耦合在一块,另一种是依靠activiti7做成单独的微服务,实现功能的复用,成为真正的工作流“引擎”。
2023-09-02 10:56:32
1622
原创 SpringBoot实现适配器模式
当一个系统需要使用另一个系统的接口,但两个系统的接口不兼容时,可以使用适配器模式进行接口转换。在现实生活中,经常出现两个对象因接口不兼容而不能在一起工作的实例,这时需要第三者进行适配转换。比如:美版和港版电脑的插头与国行不一样,所以我们需要更换电源适配器,或者增加一个转换插头来解决问题。需要一个统一的输出接口,而输入类型不可预知。适配器模式把一个类的接口变换成客户端所期待的另一个接口,从而使原本因接口不兼容而无法一起工作的两个类能一起工作。
2023-08-07 17:02:17
1224
原创 SpringBoot实现责任链模式
类似现实生活中铁链,由一个个铁环首尾相接构成一条链,如果这种结构用在编程领域,则每个节点可以看做一个对象,每个对象有不同的处理逻辑,将一个请求从链的首端发出,沿着链的路径依次传递每个节点对象,直到有对象处理这个请求为止。责任链模式(Chain of Responsibility Pattern),顾名思义,为请求者和接受者之间创建一条对象处理链路,避免请求发送者与接收者耦合在一起。
2023-07-25 16:04:13
3035
原创 SpringBoot实现装饰器模式
装饰器模式在现实生活中的例子简直太多了。比如有个手机(裸机Phone类),如果需要不断的为这个Phone增添某个功能从而变成一个新功能的Phone,就需要一个装饰器的类,来动态的给一个类额外添加一个指定的功能,而生成另一个类,但原先的类又没有改变,不影响原有系统的稳定。比如我开了一个奶茶店,卖的是普通的奶茶。现在我想引入一个叫珍珠奶茶的商品,我要怎么做呢?我是不是需要升级—下我的制作奶茶的机器,让它支持珍珠奶茶的做法?但这种成本估计比较高,说不定还没原来做奶茶的机器好用呢!
2023-07-24 14:29:52
860
原创 SpingBoot实现工厂模式
最开始创建对象是用new,就是原始社会要用斧头得自己造进入工业社会,也就是所说的工厂模式,有了工厂,工厂可以生产斧头,直接可以从工厂买当然更高级的是控制反转,也叫依赖注入,从配置文件中配置,相当于进入社会主义了,有人直接把斧头送到你手上,对象就这么生成出来了工厂模式易于功能扩展,例如有个汽车生产工厂,原来有比亚迪产线、大众产线,现在要加一条凯迪拉克产线。只需返回汽车汽车类共有的(父类)凯迪拉克类的对象(此对象是多态对象),而不对其他产线造成影响。
2023-07-22 14:12:40
1595
原创 SpringBoot实现策略模式
传统的实现方式,通过传统if代码判断。这样就会导致后期的维护性非常差。当后期需要新增计费方式,还需要在这里再加上if(),也不符合设计模式的开闭原则。策略模式是一种行为型模式,它将对象和行为分开,将行为定义为 一个行为接口 和 具体行为的实现。策略模式最大的特点是行为的变化,行为之间可以相互替换。策略模式定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。
2023-07-22 13:17:40
2698
4
原创 小爱音箱接入chatgpt
本次实现是通过搭建部署 homeassistant + nodered + mqtt 实现小爱音箱接入chatgpt功能。mqtt是封装好的chatgpt的发布与订阅提示:以下是本篇文章正文内容,下面案例可供参考。
2023-05-17 19:56:11
12619
14
原创 微信公众号推送天气预报
SpringBoot实现定时推送早中晚天气预报、心灵鸡汤、生日、情侣在一起时间等,机器人自动回复文字、图片消息、语言等。
2022-11-13 15:59:36
3794
5
原创 Java数据结构与算法
文章目录前言一、数据结构概述结构线性数据结构非线性数据结构集合数据结构的比较和选择常用数据结构数据结构选择二、算法概述算法的5个特征二分查找算法排序算法实现冒泡排序快速排序选择排序插入排序归并排序测试总结前言数据结构与算法就是预估程序在大量的数据集上运行时需要的时间成本和空间成本!一、数据结构概述 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。结构 选择适当的数据结构可以提高计算机程序的运行效率(时间复杂度)和存储效率(空间复杂度)。Data_Structure,它是.
2021-12-02 13:52:42
735
原创 PostgreSQL数据类型与Java8数据类型对照
文章目录PostgreSQL数据类型与Java8数据类型对照PostgreSQL数据类型与Java8数据类型对照编号数据库类型JAVA类型JDBC索引1varcharjava.lang.String122charjava.lang.String12textjava.lang.String123int2java.lang.Integer54int4java.lang.Integer45int8java.lang.Lo
2021-11-07 15:56:13
7226
2
原创 MySQL数据类型与Java数据类型对照
文章目录MySQL数据类型与Java数据类型对照MySQL数据类型与Java数据类型对照编号数据库类型JAVA类型JDBC索引1varcharjava.lang.String122charjava.lang.String13blobjava.lang.byte[]-44textjava.lang.String-15intjava.lang.Long46tinyintjava.lang.Integer-67
2021-10-24 14:06:20
2623
原创 MySQL事务的操作
文章目录Transaction(事务)read uncommitted(读取未提交)read committed(读取已提交)repeateable read(可重复读)serializable(序列化)Transaction(事务)什么是事务? 一个事务是一个完整的业务逻辑单元,不可再分。 事务是逻辑的一组操作,要么执行,要么不执行。 事务的存在是保证数据的完整性,安全性。事务相关的语句 DML语句,insert、update、delete MySQL事务默认是自动提交的!只要执
2021-10-24 14:05:13
475
原创 MySQL连接查询
文章目录MySQL常用连接等值连接非等值连接自连接左、右外连接全外连接交叉连接MySQL常用连接等值连接代码如下(示例):-- 查询女神名和对应的男神名select name,boyNamefrom beauty,boyswhere beauty.boyfriend_id = boys.id;-- 查询员工名和对应的部门名select last_name,department_namefrom employees e ,departments dwhere e.department
2021-10-24 14:04:48
315
原创 MySQL常用函数
文章目录MySQL常用函数分组函数字符串函数数值函数日期和时间函数流程函数其他函数MySQL常用函数分组函数函数功能count统计个数min求最小值max求最大值avg求平均值sum求和代码如下(示例):-- 查询部门编号为90的员工个数select count(*) from employees where department_id = 90;-- 查询公司员工工资的最小值,最大值,平均值,总和select min(salar
2021-10-24 14:04:18
436
原创 MySQL中的数据类型
文章目录一、MySQL中的数据类型整数型小数型字符型时间型二级制一、MySQL中的数据类型整数型类型占用字节有符号范围无符号范围描述TINYINT1字节-128~1270~255很小整数SMALLINT2字节-32768~327670~65535小整数MEDIUMINT3字节-8388608~83886070~16777215中等整数INT4字节-2147483648~21474836470~4294967295标准整数
2021-10-24 14:03:56
130
原创 MySQL总结
文章目录前言一、MySQL中的数据类型二、MySQL数据类型与Java数据类型对照三、DQL语句顺序四、常用函数五、group by(分组)六、order by(排序)七、常用连接八、常用查询多行子查询行查询select后面from后面exists后面limit分页查询union联合查询九、CRUD操作十、库表约束操作十一、index(索引)十二、Transaction(事务)十三、视图十四、DBA命令十五、数据库设计三范式十六、DDL/DML/DQL/DCL总结前言数据库(Database,D.
2021-10-24 14:03:23
2021
原创 Java8新特性——Date Time API
文章目录一、Date Time API1.Java 8以前日期时间API存在的问题2.LocalDate/LocalTime/LocalDateTime3.获取对象的方法4.获取相关的方法5.转换的方法6.判断的方法7.增减年月日时分秒的方法8.指定年月日的方法9.日期格式化为字符串10.解析字符串为日期时间的方法11.两个日期之间的间隔一、Date Time API1.Java 8以前日期时间API存在的问题Java 8以前, java.util.Date 、java.util.Calendar
2021-09-01 20:14:53
802
原创 Java8新特性——Optional 类
文章目录一、Optional 类概述API介绍ofofNullableemptyisPresentgetifPresentorElseorElseGetorElseThrowmapflatMapfilterOptional应用一、Optional 类概述 Optional不是函数式接口,而是用于防止 NullPointerException 的漂亮工具。这是下一节的一个重要概念,让我们快速了解一下Optional的工作原理。 Optional 是一个简单的容器,其值可能是null或者不是null。
2021-09-01 20:14:07
1039
原创 Java8新特性——Stream API
文章目录一、Stream API1.概述2.Stream的特点3.常用方法初始化集合forEachfiltercountdistinctCollectors - (Collector工具库)Collectors.toList()Collectors.toSet()Collectors.toMap()统计分组joiningreducingmapflatMaplimitskipsorted统计结果收集器流的终止操作创建流的两种方式一、Stream API1.概述 Java 8扩展了集合类,可以通过 Co
2021-09-01 20:12:50
387
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人