![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
中间件
文章平均质量分 88
桐花思雨
这个作者很懒,什么都没留下…
展开
-
Flowable工作流之加签(委派)、转签(转办)
顾名思义就是增加一道审批签名,这道审批往往是临时增加的,标准流程没有规定要走的在现实工作流程中,加签功能使用率颇高;有时,审批人对内容不太确定,不太敢做主,就会找更高层的领导进行加签;这样就可以规避个人风险;出问题大家一起担。有时为了表示对领导尊重,或者让领导知道这回事,也需要使用加签功能任务在 这里, 这个时候需要 核对一下,等 核对之后又回到 这里,这时 才能继续自己的任务任务在 这里, 这个时候需要 处理这个事情,处理完毕之后就不用管了,继续后面的审批环节完成后的流程图如下 文件内容原创 2022-10-31 18:41:11 · 11767 阅读 · 3 评论 -
Flowable工作流之多实例任务会签
会签:在流程任务管理中,比如我们有一个任务,可能需要多人审批,审批通过的条件可能比较多样,比如 个人审批, 个人审批通过就算过了(任务完成),再或者有一个人权限比较高,拥有一票否决权。即是其余所有人都审批通过了,他点了个否定就算不过了,这种就是会签会签类型 实现会签是基于 的,将节点设置成多实例,通过在 节点的属性配置详细的 文件内容多实例会签任务 节点的属性配置会签人员的集合变量,可以随意命名原创 2022-10-31 11:56:04 · 6807 阅读 · 0 评论 -
Flowable工作流之任务回退
有的时候,一个任务节点会存在多个候选人,例如 提交一个任务,这个任务既可以 处理,又可以 处理,当一个候选人认领任务之后,但是又不想处理任务了,此时我们可以将任务回退,那么针对这种情况,我们该如何处理?今天一起来看看我们先从最简单的串行流程来分析,案例流程图如下完整的 文件内容上面的流程就是一个非常简单的串行任务,定义了 个用户任务,使用变量来指派处理人分别是 ,在流程的执行过程中我们可以通过回退来演示具体的效果原创 2022-10-30 19:21:30 · 5600 阅读 · 3 评论 -
Flowable工作流之候选人
有的时候,一个任务节点会存在多个候选人,例如 提交一个任务,这个任务即可以 处理,又可以 处理,那么针对这种多个任务候选人的情况,我们该如何处理?今天一起来看看首先我们使用的流程图如上,但是在为 设置分配用户的时候,我们设置多个用户,如下图设置完成后,我们下载这个流程文件,来看下对应的 文件原创 2022-10-29 21:06:03 · 4871 阅读 · 3 评论 -
Flowable工作流之各种网关
一个并行网关允许同时出现分岔和合并两种行为,即多个执行流到达该并行网关时被合并,然后随机又被分岔为多个执行流。排他网关就好像一个人走到了一个岔路口,只能选择一条路前进,至于选择哪条路由顺序流的条件决定。流程中的网关用于控制顺序流的分支和汇合,如果不需要进行顺序流的控制,则可以不使用网关。如果有多个顺序流的条件满足要求,则哪个顺序流的定义在流程文件中靠前,走哪个顺序流。并行网关并不要求成对出现,即有了分岔并不一定有合并,有了合并也不一定有分岔。并行网关不会解析流条件。请注意内部没有图标的网关默认为排他网关。原创 2022-10-29 11:00:21 · 4568 阅读 · 0 评论 -
Flowable工作流之设置任务处理人的方式
第一种方式,是我们在绘制流程图的时候,可以选中这个节点,然后直接设置流程的处理人,像下面这样。然后在打开的窗口中选择固定值,设置具体分配的用户是。那么我该如何设置这个用户节点的处理人呢?好了,现在这个节点就固定的由一个名为。现在,假设我有如下一个简单的流程图。,这句话就是设置这个。原创 2022-10-28 19:19:36 · 1688 阅读 · 0 评论 -
Flowable工作流之查询历史流程信息
上篇文章 和大家分享的流程操作主要是正在执行的流程,我们有一个非常常见的场景是查询执行过的流程信息,在上篇文章中,小伙伴们已经知道,对于正在执行的流程,会在 表中保存一条对应的记录,不过流程执行结束之后, 表中的记录会被删除掉,此时要是想查询已经执行过的流程信息,去哪里查询呢?今天我们就来看看 的使用本文使用的流程图依然是上篇文章中使用过的,如下原创 2022-10-28 16:36:44 · 5617 阅读 · 0 评论 -
Flowable工作流之核心流程操作的本质
部署之后的流程,这个还不能直接运行,例如我们部署了一个请假流程,现在zhangsan想要请假,他就需要开启一个请假流程,lisi想请假,他也需要开启一个请假流程,这一个一个开启的请假流程就是流程实例,而我们一开始部署的请假流程,则类似于一个模版,基于此模版,我们可以开启很多个具体的流程实例流程定义这个好说,其实就是我们上篇文章中和大家介绍的内容。将一个流程XML文件部署到flowable中,这就是一个定义好的流程了,基于这个定义好的流程,我们可以开启很多流程实例。原创 2022-10-25 23:34:15 · 1890 阅读 · 0 评论 -
Flowable工作流之核心Service
Servcie。原创 2022-10-25 17:59:22 · 1826 阅读 · 0 评论 -
Flowable这么多的表都是干嘛的?
张数据表,了解这些数据表,有助于我们更好的理解。流程引擎的时候,虽然我们使用的是各种。本质上操作的都是底层的数据表,,但是小伙伴们都知道,这些。张表进行一个简单的分类整理。原创 2022-10-25 16:25:25 · 2832 阅读 · 0 评论 -
SpringBoot整合Flowable工作流之流程部署
有的时候,我们的流程可能并不是提前设计好的,而是项目启动之后,动态部署的,例如项目启动成功之后,动态上传一个流程的。当然,无论是存放流程文件的位置,还是流程文件的格式,都是可以定制的,涉及到的属性主要有三个,可在。文件进行部署,这也是一种比较常见的场景,对于这种情况,我们可以按照如下方式进行部署。目录下的所有流程文件会自动被部署,流程文件的后缀有两种形式。默认情况下,我们放在。原创 2022-10-25 14:48:39 · 4446 阅读 · 1 评论 -
MyBatis传递多个参数
MyBatis。原创 2022-10-17 17:19:31 · 2399 阅读 · 0 评论 -
MyBatis插入数据后返回主键id
很多时候,在向数据库插入数据时,需要保留插入数据的 ,以便进行后续的 操作或者将 存入其他表作为外键。但在默认情况下, 操作返回的是一个 值,并不是表示主键 ,而是表示当前 语句影响的行数接下来,我们看看 如何在使用 和 做 插入操作时将返回的 绑定到对象中......原创 2022-06-13 15:20:08 · 16630 阅读 · 4 评论 -
MyBatis中数据库字段名与实体类属性名不一致
在使用 来持久化数据库时,有时候会碰到数据库中表中的字段与 实体类中属性名不一致的情况,在这种情况下 是不能完成字段的自动映射的。而通常情况下,数据库及实体类是不应该被改的的。所以要在不改变数据库以及实体类的情况下解决这个问题,下面是解决该问题的三种方式1.1. 起别名1.2. 可以指定映射关系使用 时,在 语句配置中,要有 替换原来的 中的 要与查询到的字段名一致, 要与实体类的属性一致1.3. 驼峰命名这种情况下, 提供了一个全局属性 来解决两者名字不一致的问题..原创 2022-06-13 14:19:30 · 3420 阅读 · 0 评论 -
MyBatis的xml文件的大于,小于,不等于的写法
MyBatis原创 2022-06-13 14:16:35 · 3006 阅读 · 0 评论 -
MyBatis模糊查询的几种写法
1.2. 使用 函数针对 数据库的语句,采用 函数,它可以将多个字符串连接成一个字符1.3. 使用 标签如果报错如下,说明 版本过低,需要升级版本原创 2022-06-13 14:11:41 · 448 阅读 · 0 评论 -
MyBatis中Mapper接口是怎么和XML文件关联起来的
目录1.前言2. `XML` 文件和 `Mapper` 接口的解析2.1. `XML` 文件的解析1.前言使用过 MyBatis 的,都知道它有 Mapper 接口和 Mapper.xml 文件,那么它们是如何关联起来的呢?,又是如何一起运作的呢?接下来,我们从源码级别来分析回答这个问题2. XML 文件和 Mapper 接口的解析2.1. XML 文件的解析XMl 文件的解析过程太过复杂,在这里不再过多赘述,详细过程 在这里,我们先从 这里的 2.6 节点谈起,代码如下private void原创 2022-03-07 22:14:05 · 13536 阅读 · 4 评论 -
MyBatis内的Mapper接口方法为什么不能重载
目录前言前言今天在翻阅有关 MyBatis 专题的知识点时,看到了这样一道面试题:MyBatis 内的 Mapper接口方法为什么不能重载,对于这个问题,幸好前几天查漏补缺了一下 MyBatis 专题,毋庸置疑它考的是你对 MyBatis 源码的熟悉程度,少说多做...原创 2022-03-06 19:26:03 · 1939 阅读 · 0 评论 -
Spring整合MyBatis原理之Mapper接口和xml文件的解析
目录前言类 `SqlSessionFactoryBean`实现了 `FactoryBean` 接口的 `getObject()``buildSqlSessionFactory()`解析 `mapper` 文件的 `parse()`解析 `mapper` 文件的 `configurationElement(parser.evalNode("/mapper"))`解析节点 `statementParser.parseStatementNode()`绑定 `namespace` 的 `mapper` 的 `bin原创 2022-03-06 01:24:01 · 6334 阅读 · 0 评论 -
Spring整合MyBatis原理之Mapper接口代理对象的产生以及调用
目录前言解析 `Dao` 接口小结`Dao` 接口的调用`method.invoke(this, args)`增删改查`spring` 整合 `mybatis` 原理流程步骤前言解析 Dao 接口DAO 文件,也就是 basePackage 指定的包下的文件,也就是上文的 ProductInfoMapper上文 doScan() 中说过,basePackage 包下所有 bean 定义的 beanClass 会被设置成 MapperFactoryBean.class,而 MapperFactoryB原创 2022-03-06 01:19:35 · 2850 阅读 · 2 评论 -
Spring整合MyBatis原理之MapperScannerConfigurer(一)
目录前言`spring` 整合 `mybatis` 原理1. 类 `MapperScannerConfigurer`类 `MapperScannerConfigurer` 小结2. 类 `SqlSessionFactoryBean`类 `SqlSessionFactoryBean` 小结3. 解析 `DAO` 文件解析 `DAO` 文件小结4. `DAO` 接口被调用`spring` 整合 `mybatis` 原理流程步骤前言spring 和 mybatis 进行整合时,需要使用以下这个依赖包<原创 2021-04-19 14:30:49 · 2642 阅读 · 0 评论 -
Spring整合MyBatis之MapperFactoryBean
目录前言`MapperFactoryBean` 概述`MapperFactoryBean` 源码实现 `FactoryBean` 接口的作用前言在 Spring 整合 MyBatis 的过程中,我们经常会配置注入 MapperFactoryBean 这个类<bean id="mapperFactoryBean" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface"原创 2022-03-05 22:28:40 · 3687 阅读 · 0 评论 -
Spring整合MyBatis之SqlSession对象的产生
目录前言前言在 上一篇 文章中,我们知道 MyBatis 有四大核心对象,分别是 SqlSessionFactoryBuilder,SqlSessionFactory,SqlSession,Mapper 映射器,而 MyBatis 在和 Spring 整合之后,Spring 会帮助我们管理 SqlSessionFactory、SqlSession、Mapper 映射器这些核心 bean;在 这一篇 文章中已经阐述了 SqlSessionFactory 对象的产生过程,在本篇文章中就是来阐述 SqlS原创 2022-03-05 18:21:06 · 2620 阅读 · 0 评论 -
Spring整合MyBatis之SqlSessionFactory对象的产生
目录为什么 `MyBatis` 要和 `Spring` 整合`Spring` 整合 `MyBatis``Maven` 依赖创建 `Spring` 配置文件为什么 MyBatis 要和 Spring 整合Spring 会帮助我们管理 bean:省去我们对 SqlSessionFactory、SqlSession、Mapper 这些核心对象(bean)的创建,不需要我们手工去创建了,Spring 会通过 IOC 容器来帮我们管理这些对象Spring 使用 xxxTemplate 封装了方法:Spring原创 2022-03-04 22:38:19 · 2240 阅读 · 0 评论 -
MyBatis入门使用及其四大核心对象
目录`MyBatis` 简介`MyBaits` 的优点`MyBatis` 与 `Hibernate` 有哪些不同MyBatis 简介MyBatis 是一个半 ORM( 对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。开发人员直接编写原生态 SQL,可以严格控制 SQL 执行性能, 灵活度高MyBatis 可以使用 XML 或注解来配置和映射原生信息, 将 POJO 映射成数据库中的记录,原创 2022-03-04 16:44:57 · 1550 阅读 · 0 评论 -
Redis支持的数据类型及其使用场景
目录`Redis` 支持的数据类型使用场景`String` 类型Redis 支持的数据类型Redis 支持的五种数据类型String:字符串类型Hash:哈希,散列表类型List:列表类型Set:(集合)Zset:有序集合使用场景String 类型String 类型是 Redis 中最常见的数据类型,其使用场景如下缓存:简单的 key-value 存储,可以用于热点数据的缓存、对象缓存、全页缓存、可以提升热点数据的访问数据位统计:在线用户统计,文章访问量,记录每个用户的访问次数原创 2022-03-02 22:54:08 · 606 阅读 · 0 评论 -
Spring Data JPA持久层中的一对一和一对多
目录`JPA` 中的一对一JPA 中的一对一比如说一个学校有一个地址,一个地址对应的只有一个学校,Address 类@Data@Entity@Table(name = "t_address")public class Address { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer aid; private String province;原创 2022-02-19 23:05:36 · 440 阅读 · 0 评论 -
Elasticsearch入门之SpringBoot整合Elasticsearch
目录前言`SpringBoot` 整合 `Elasticsearch``Maven` 依赖`application.properties` 文件前言前面两篇文章完成了 windows 环境下 elasticsearch 的安装,这篇文章学习了解一下 elasticsearch 的 API 以及简单的使用,算是入门级教程笔记SpringBoot 整合 Elasticsearch整合环境springboot 版本 2.0.9.RELEASEelasticsearch 版本 5.6.16Mave原创 2022-01-14 15:22:04 · 1791 阅读 · 0 评论 -
Springboot整合Redisson实现分布式锁
分布式锁简述在传统的,老旧单机项目中要想实现锁机制,我们可以使用下面的方式基于 Java API 层面的 Lock :代表实现类 ReentrantLock基于 Java API 层面的 ReadWriteLock :代表实现类 ReentrantReadWriteLock基于 JVM 的 synchronized 关键字但随着业务场景越来越复杂,伴随着技术的不断发展,在分布式的环境中,想要实现锁机制,使用上述的方式已无法实现业务功能。所以提出了分布式锁的概念及技术分布式锁的实现,常见的有使原创 2021-03-30 11:12:40 · 4667 阅读 · 2 评论 -
SpringBoot整合Shiro
目录什么是 `Shiro``Shiro` 架构`Shiro` 架构图`Shiro` 工作原理什么是 ShiroShiro 是一个强大的简单易用的 Java 安全框架,主要用来更便捷的 认证,授权,加密,会话管理。Shiro 首要的和最重要的目标就是容易使用并且容易理解,通过 Shiro 易于理解的API,您可以快速、轻松地获得任何应用程序——从最小的移动应用程序最大的网络和企业应用程序Shiro 架构Shiro 架构图Authentication:身份认证/登录Authorization:验原创 2021-10-22 19:44:35 · 302 阅读 · 0 评论 -
SpringBoot整合Shiro之Thymeleaf使用Shiro标签
目录`thymeleaf` 模板引擎使用 `shiro` 标签thymeleaf 模板引擎使用 shiro 标签我们紧接着 上一篇 文章,我们使用账号 jack 和账号 Tom 来分别登录,在上一篇文章测试中可以看到,这两个账号无论哪一个登录,首页页面都会显示 add 页面和 update 页面两个超链接,而对于这两个账号来说,一个拥有访问 add 页面的权限,一个拥有访问 update 页面的权限。那么问题来了,如何才能根据对应用户的身份角色来显示对应的页面呢?这就要使用 shiro 标签了..原创 2021-10-23 16:42:39 · 855 阅读 · 2 评论 -
SpringBoot整合Shiro之实现记住我
目录前言`springboot` 整合 `shiro` 之实现记住我配置类 `ShiroConfig`前言上一篇 文章我们完成了在 thymeleaf 模板引擎中使用 shiro 标签,也就是根据不同的用户身份信息,前端页面来显示不同的页面内容。本篇文章我们来完成在登录页面的记住我的功能springboot 整合 shiro 之实现记住我项目依然使用 springboot整合shiro 这个项目,稍稍改动即可完成记住我的功能配置类 ShiroConfig完整的代码如下@Configuratio原创 2021-10-24 00:35:16 · 2091 阅读 · 0 评论 -
MyBatis的分页插件PageHelper的使用
目录`pagehelper` 分页插件简介pagehelper 分页插件简介如果你也在用 MyBatis,建议尝试该分页插件,这一定是最方便使用的分页插件。分页插件支持任何复杂的单表、多表分页gitHub 官方文档:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md...原创 2022-01-07 15:38:30 · 447 阅读 · 0 评论 -
使用Spring Data JPA作为持久层框架
Spring Data JPA简述Spring Data JPA 是 Spring 基于 Spring Data 框架、在JPA 规范的基础上开发的一个框架,使用Spring Data JPA 可以极大地简化JPA的写法,可以在几乎不用写实现的情况下实现对数据库的访问和操作,除了CRUD外,还包括分页和排序等一些常用的功能Maven依赖<dependency> <groupId>org.springframework.boot</groupId> <a原创 2020-08-23 19:26:06 · 736 阅读 · 0 评论 -
windows环境elasticsearch安装IK分词器
目录前言`IK` 分词器下载安装前言elasticsearch 默认的分词器,分词效果不太理想,会把 text 的字段分成一个一个汉字,然后搜索的时候也会把搜索的句子进行分词,所以这里就需要更加智能的分词器 IK 分词器了IK 分词器下载下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases,这里你需要根据你的 elasticsearch 的版本来下载对应版本的 IK,这里我使用的是 5.6.12 的 elasticsearc原创 2022-01-13 21:13:54 · 1956 阅读 · 0 评论 -
windows环境安装elasticsearch
目录`elasticsearch` 简介特性elasticsearch 简介elasticsearch (简称 ES)是一个基于 Lucene 的开源搜索引擎,它不但稳定、可靠、快速,而且也具有良好的水平扩展能力,是专门为分布式环境设计的,elasticsearch 是面向文档型数据库,这意味着它存储的是整个对象或者文档,它不但会存储它们,还会为他们建立索引,这样你就可以搜索他们了。你可以在 elasticsearch 中索引、搜索、排序和过滤这些文档,不需要成行成列的数据,elasticSearch原创 2022-01-13 17:22:17 · 1676 阅读 · 0 评论 -
MyBatis的缓存机制
目录`mybatis` 的缓存机制一级缓存mybatis 的缓存机制一级缓存:SqlSession 级别的缓存,缓存的数据只在 SqlSession 内有效二级缓存:mapper 级别的缓存,同一个 namespace 公用这一个缓存,所以对 SqlSession 是共享的一级缓存一级缓存是 SqlSession 级别的缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该 Session 中的所有 Cache 就将清空一级缓存是 SqlSessio原创 2021-12-19 18:18:06 · 741 阅读 · 0 评论 -
MyBatis中foreach的用法
目录`foreach` 说明foreach 说明你可以传递一个 list 实例或者 array 数组作为参数对象传给 mybatis。当你这么做的时候,mybatis 会自动将它包装在一个 Map 中,用名称作为键。list 实例将会以 list 作为键,而 array 数组实例将会以 array 作为键foreach 元素的属性主要有 item,index,collection,open,separator,closeitem:表示集合中每一个元素进行迭代时的别名index:指定一个名字,用于原创 2021-11-20 18:04:41 · 24759 阅读 · 3 评论 -
Redis主从,哨兵架构简单搭建
目录集群搭建集群搭建打开四个窗口,分别进入目录分别拷贝 redis.conf 这个配置文件 3 份分别修改上面的配置文件编辑修改的文内容为:下面以 redis6381.conf 文件为例说明bind 127.0.0.1 # 此处不用修改port 6381 # 修改端口daemonize yes # 改为后台运行pidfile /var/run/redis_6381.pid # pid 文件改为相应的logfile "6381.log" # 日志文件改为相应的dbfilename原创 2021-10-01 13:10:32 · 301 阅读 · 0 评论 -
SpringBoot整合Rabbitmq之延时队列
目录延时队列概念使用场景延时队列实现延时队列概念延时队列是存储延时消息的队列,延时消息就是生产者发送了一条消息,但是不希望该消息不要被立即消费,而是设置一个延时时间,等过了这个时间再消费消息使用场景订单在十分钟之内未支付则自动取消新创建的店铺,如果在十天内都没有上传过商品,则自动发送消息提醒账单在一周内未支付,则自动结算用户注册成功后,如果三天内没有登陆则进行短信提醒用户发起退款,如果三天内没有得到处理则通知相关运营人员这时候,延时队列就可以闪亮登场了,以上场景,正是延时队列的用武之原创 2021-09-27 15:49:24 · 1268 阅读 · 0 评论