- 博客(14)
- 收藏
- 关注
原创 Activiti 5.0 回退到任意节点(2)
activiti在每个正在执行的任务都有一个执行器,即ru_task表(数据表act_ru_task,后面介绍到数据表会省略act_)的数据会与ru_execution有相对应的关系,当前的跳转实现就用到这个执行器,俗话说就是鸠占鹊巢的方法。旧版:使用改变节点的去向,然后使用taskService.complete的方法将任务强行回退给指定的节点,然后在恢复节点的去向,这种的如果用在非并行流程其实是没问题的。新版:使用跳转的方式,不会推动进程,改变的最少,需要删除比较多的数据。
2022-09-14 11:20:56
1903
1
原创 【ant】Apache ant 开发
Apache ant 开发Ant是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点。跨平台性。Ant是纯Java语言编写的,所以具有很好的跨平台性。操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建文件)。 Ant通过调用target树,就可以执行各种task。每个task实现了特定接口对象。由于Ant构建文件 是XML格式的文件,所以很容易维护和书写,而且结构很清晰。Ant可以集成到开发环境中。由于Ant的跨平台性和操作简单的特点,它很容易集成
2022-02-08 10:22:59
1748
原创 Activiti 5.0 回退到任意节点(并行)
Activiti 5.0 回退到任意节点(并行)应用场景 针对activiti中国式需求,实现平行网关回退解决方案任意节点回退思路获取回退节点id,获取当前任务id保存当前任务节点id流向清除当前任务节点id流向将当前任务节点任务流向退回节点id完成当前节点任务恢复当前节点流向针对并行网关处于并行网关内回退至网关外节点(如2.1回退到1),需考虑2.2是否已经完成,若已完成则不用管,若未完成,则需将2.2任务删除,否则会出现两个单处于并行网关外回退至网关内节点(如3回退到2
2021-12-22 16:58:25
3981
2
原创 【设计模式】【5】原型设计模式
原型设计模式(Clone)原型是一种创建型设计模式,使你能够复制已有对象,而又无需使代码依赖它们所属的类。案例说明复制图形UML图原型(Prototype)接口将对克隆方法进行声明。在绝大多数 情况下,其中只会有一个名为 clone 克隆 的方法。具体原型(Concrete Prototype)类将实现克隆方法。除了将 原始对象的数据复制到克隆体中之外,该方法有时还需处理 克隆过程中的极端情况,例如克隆关联对象和梳理递归依赖 等等。客户端(Client)可以复制实现了原型接口的任何对象
2021-12-22 16:37:37
90
原创 【设计模式】【4】单例设计模式
单例设计模式(Singleton)单例是一种创建型设计模式,让你能够保证一个类只有一个实例,并提供一个访问该实例的全局节点。案例说明数据库连接UML图单例(Singleton)类声明了一个名为 getInstance 获取实 例 的静态方法来返回其所属类的一个相同实例。单例的构造函数必须对客户端(Client) 代码隐藏。 调用 获取实例 方法必须是获取单例对象的唯一方式。核心代码multithreaded/DatabaseMultiThreaded/** * @author:
2021-12-21 11:07:43
88
原创 【设计模式】【3】抽象工厂
抽象工厂(Abstract Factory)抽象工厂是一种创建型设计模式, 它能创建一系列相关的对象,而 无需指定其具体类。案例说明跨平台应用中的相同 UI 元素功能类似,但是在不同操作系统下的外观有一定差异。此外,你需要确保 UI 元素与当前操作系统风格一致。你一定不希望在 Windows 系统下运行的应用程序中显示 macOS 的控件。抽象工厂接口声明一系列构建方法,客户端代码可调用它们生成不同风格的 UI 元素。每个具体工厂对应特定操作系统,并负责生成符合该操作系统风格的 UI 元素。
2021-12-09 11:40:35
299
原创 【springboot】springboot使用swagger3
springboot使用swagger31、pom.xml添加依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>3.0.0</version> </dependen
2021-12-09 10:10:44
243
原创 【java多线程】 java多线程学习笔记
JAVA多线程进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。(进程是资源分配的最小单位)线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是cpu调度的最小单位)继承Thread父类这里继承Thread类的方法是比较常用的一种,如果说你只是想起一条线程。没有什么其它特殊的要求,那么可以使用Thread.(推荐使用Runable)。下面来看一个简单的实例class Thread1
2021-12-09 09:55:40
48
原创 【rabbitMq】docker安装和启动
一、拉取镜像及创建挂载文件镜像参考网址:https://hub.docker.com/_/rabbitmq?tab=tags&page=1&ordering=last_updated#拉取rabbit镜像docker pull rabbitmq:3.7.8-management#用于挂载rabbit数据文件mkdir -p /home/rabbitmq/data 二、启动容器docker run -d --name rabbitmq -p 5672:5672 -p 15672
2021-12-09 09:44:44
174
原创 【redis】docker启动redis,redis常用命令
docker启动docker run -p 6379:6379 -d redis:latest redis-serverdocker连接redis#无密码 docker exec -it redis_s(容器Id) redis-cli#如果有密码 使用 -a参数docker exec -it redis_s(容器Id) redis-cli -h 192.168.1.100 -p 6379 -a your_password //1)连接操作命令quit:关闭连接(connection)
2021-12-09 09:43:42
903
原创 【docker】docker常用命令
ubuntu启动dockersservice docker startservice docker stopservice docker restart查看当前容器docker container ls -all删除当前容器docker container rm mycentos重启docker容器service docker restart查找docker镜像docker search **下载镜像docker pull ****持续更新…...
2021-12-09 09:37:54
720
原创 【设计模式】【2】工厂方法
工厂方法(Factory Method)工厂方法是一种创建型设计模式, 其在父类中提供一个创建对象的 方法,允许子类决定实例化对象 的类型。案例说明基础对话框类使用不同的 UI 组件渲染窗口。在不同的操作系统下,这些组件外观或许略有不同,但其功能保持一致。Windows 系统中的按钮在 Linux 系统中仍然是按钮。如果使用工厂方法,就不需要为每种操作系统重写对话框逻辑。如果我们声明了一个在基本对话框类中生成按钮的工厂方法,那么我们就可以创建一个对话框子类,并使其通过工厂方法返回 Wind
2021-12-07 18:13:20
183
原创 【设计模式】【1】 SOLID原则
SOLID原则 对于是否真的有能够同时应用所有这五条原则的成功软件产品表示怀疑。有原则是件好事,但是也要时刻从实用的角度来 考量,不要把这里的每句话当作放之四海皆准的教条。S:单一职责原则修改一个类的原因只能有一个尽量让每个类只负责软件中的一个功能,并将该功能完全封装(你也可称之为隐藏)在该类中。 这条原则的主要目的是减少复杂度。你不需要费尽心机地去 构思如何仅用 200 行代码来实现复杂设计,实际上完全可以 使用十几个清晰的方法。 当程序规模不断扩大、变更不断增加后,真实问题才会逐渐 显现出
2021-12-07 17:57:41
92
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人