- 博客(104)
- 收藏
- 关注
原创 SpringBoot集成Flowable
1、概念通过计算机对业务流程的自动化管理。工作流是建立在业务流程的基础上,一个软件的系统核心根本上还是系统的业务流程,工作流只是协助进行业务流程管理。解决的是:在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标2、工作流系统概念:具有工作流功能的系统比如,OA、ERP系统,可能涉及工作流,都可以叫工作流系统3、具体应用关键业务流程:订单、报价处理、合同审核、客户电话处理、供应链管理等。
2026-05-03 21:47:04
327
原创 PostgreSQL 17 发布了!非常稳定的版本
这些新特性和改进不仅提升了数据库的性能和功能,也增强了数据库的可用性和灵活性,使得 PostgreSQL 17 成为一个值得期待的版本。
2026-05-03 18:41:13
238
原创 mysql如何创建用户并且授权
这里的’localhost’表示该用户只能从本地主机连接。如果要允许从任何主机连接,可以使用%,例如:CREATE USER ‘new_user’@‘%’ IDENTIFIED BY ‘new_password’;- 如果要授予所有数据库的权限,可以使用*.*,例如:GRANT ALL PRIVILEGES ON *.* TO ‘new_user’@‘localhost’;- 创建用户后,需要为用户授予适当的权限。这样就成功创建了一个 MySQL 用户并为其授予了相应的权限。
2026-05-03 17:10:42
45
原创 Keepalived + Nginx实现高可用
IP规划VIPIPnginx端口默认主从80MASTER80BACKUP(1)配置IP(2)修改主机名(3)配置yum源(两台虚拟机相同)2. 安装nginx(1)首先安装依赖(两个节点同步)(2)安装nginx(3)解压nginx压缩包(4)进入nginx目录,编译并安装(两个节点同步)(5)修改nginx首页面IP地址(welcome to nginx改成本机IP,从节点同理,改为192.168.100.202)(6)启动nginx(两个节点同步)
2026-05-03 15:39:03
390
原创 SpringSecurity踢出指定用户
SpringSecurity中可以使用 SessionRegistry 的实现类 SessionRegistryImpl 来获取session相关信息,可以通过这个实现类来踢出用户。
2026-04-21 10:13:27
32
原创 Spring Cloud Data Flow 简介
1.Data flow 是一个用于开发和执行大范围数据处理其模式包括ETL,批量运算和持续运算的统一编程模型和托管服务。2.对于在现代运行环境中可组合的微服务程序来说,spring cloud data flow是一个原生云可编配的服务。使用spring cloud data flow,开发者可以为像数据抽取,实时分析,和数据导入/导出这种常见用例创建和编配数据通道 (data pipelines)。
2026-04-21 07:51:07
306
原创 PageHelper 解析及实现原理
面向关系型数据库的 SQL 查询和数据导出时,如果数据条数非常大,直接将所有数据一次性查出或者导出显然是不可行的。这时候就需要进行分页查询或分页导出,将查询或导出的数据按照指定大小分页加载或写入,从而提高查询或导出的效率。而分页查询或分页导出的实现过程比较繁琐,需要考虑很多细节问题,容易出错。因此,出现了一些支持分页查询或分页导出的插件或工具类,例如 MyBatis-Plus 的分页插件 PageHelper。PageHelper是Mybatis-Plus中的一个插件,主要用于实现数据库的分页查询功能。
2026-04-21 05:34:13
179
原创 MySQL5.7.44-winx64版本Windows Server下载安装教程图解
2、解压到D:mysql-5.7.44-winx64 目录下(这个可以根据需要自行调整),解压后在根目录下创建my.ini和data文件夹。3.新建环境变量,命名为MYSQL_HOME,变量值为msql的安装目录:D:mysql-5.7.44-winx64。再在服务里启动mysql,这时候mysql的端口已修改,原来已使用的程序,请也一起修改端口。6.登录mysql,mysql -uroot -p,首次默认空密码,修改远程连接配置。7、修改密码,mysql -uroot -p,首次默认空密码。
2026-04-21 03:17:03
253
原创 Spring Boot 2.7.x 至 2.7.18 及更旧的版本,漏洞说明
在 Spring Framework 版本 5.3.0 至 5.3.38 及更早的不受支持版本中,如果应用程序评估了用户提供的 SpEL(Spring Expression Language)表达式,攻击者可以利用特制的表达式导致拒绝服务(DoS)攻击。
2026-04-19 13:45:54
258
原创 Nginx 反向代理之upstream模块以及完整配置反向代理示例
也就是说在一个时刻内,Nginx到上游服务器的空闲的长连接是16个,所谓空闲的长连接就是这个长连接TCP连接接建立着,但是上面没有请求去发送,但这就是空闲的长连接。所以说我们的keepalive后面跟一个connection的这样一个参数,就定义了Nginx和后端的上游服务器可以开启的长连接的一个空闲长连接的最大数量。启用长连接的情形下的话,有很多的并发请求都调度给某一台上游服务器,上游服务器处理完之后,结果都返回给Nginx了。请求到达上游服务器的url: /bbs/abc/test.html。
2026-04-19 10:58:44
187
原创 MS SQL Server partition by 函数实战三 成绩排名
关键语句:row_number() over (partition by zwmc order by kszcj desc,kscj1 desc,kscj2 desc),按 zwmc (职位名称)分区,以kszcj(考试总成绩) 降序排列,第二排序以kscj1(分项考试成绩1) 降序排列,,第三排序以kscj2(分项考试成绩2) 降序排列,row_number() 函数起到了总排序功能。现希望根据总成绩计算排名,成绩越高排名越靠前,相同成绩排名并列,另外有并列则按总数递增,如两个第1后是第3。
2026-04-19 02:28:23
159
原创 (CICD)自动化构建打包、部署(Jenkins + maven+ gitlab+tomcat)
在本文档中,我们将概述持续集成,持续交付和持续部署的概念,以及GitLab CI / CD的介绍。软件开发的连续方法基于自动执行脚本,以最大限度地减少在开发应用程序时引入错误的可能性。从新代码的开发到部署,它们需要较少的人为干预甚至根本不需要干预。它涉及在每次小迭代中不断构建,测试和部署代码更改,从而减少基于有缺陷或失败的先前版本开发新代码的机会。这种方法有三种主要方法,每种方法都根据最适合您的策略进行应用。Devops持续集成。
2026-04-18 10:00:47
206
原创 在SpringBoot项目中使用Redission实现分布式锁(什么是Redission、为什么要使用分布式锁、分布式锁的应用场景、Redission的读锁和写锁、可重入锁的原理)
Redission是一个在Redis基础上实现的Java客户端,它不仅提供了对Redis各种数据结构的访问接口,还封装了一系列的分布式系统常用的高级功能,比如分布式锁、原子操作、分布式集合、发布订阅消息队列等Redission旨在简化Java应用与Redis服务之间的交互,使得Java开发者能够更加方便地使用Redis提供的各种功能基础与扩展:Redis是基础的数据存储服务,而Redission是在此基础上提供的一系列扩展功能,使Redis在Java应用中的使用更加便捷语言绑定。
2026-04-18 05:57:45
218
原创 SQL Server导出和导入可选的数据库表和数据,以sql脚本形式
3. 如果只需要导出部分表,则选择第二项**“选择具体的数据库对象(Select specific database objects)”**,并勾选表;1. 打开SQL Server Management Studio,在需要导出表的数据库上单击右键 → 任务 → 生成脚本。1. 如果导出的脚本文件较小,可以直接双击文件,在SQL Server Management Studio里执行。如果同时需要导出表结构和数据,就从右上角的**“高级(Advanced)”5. 之后,连续点击下一步,直到完成。
2026-04-18 01:10:51
225
原创 SpringBoot:几种常用的接口日期格式化方法
在 Spring Boot 中,可以使用自定义参数转换器实现日期格式化。public?class?????@Bean????public?LocalDate>?????????return?new?????????????@Override????????????public?LocalDate?source)?????????????????return?????????????????????????????@Bean????public?????????return?new????????
2026-04-18 00:09:15
324
原创 springBoot发布https服务及调用
(2)CA 签名证书:对于生产环境,应该使用由受信任的证书颁发机构 (CA) 签名的证书。(1)自签名证书:如果你只是用于开发或测试环境,可以生成一个自签名证书。feign接口的地址还是正常配置http或https都支持。你需要提供一些信息,如组织名称等。注意记住密码和别名。这将创建一个有效期为 10 年的自签名证书,并将其存储在。启动服务即可通过https访问了,默认可以设置成false。把证书放在ssl目录下。
2026-04-17 23:36:28
28
原创 mysql怎么查看
通过以下命令查看 mysql 数据库:连接到服务器:mysql -u 用户名 -p 密码运行 show databases;命令获取所有现有数据库选择数据库:use 数据库名;查看表:show tables;查看表结构:describe 表名;查看数据:select * from 表名;首先需要使用 MySQL 客户端连接到服务器。命令将返回一个结果集,其中包含所有现有数据库。
2026-04-04 02:24:41
40
原创 springboot-自定义注解
第一步:定义注解第二步:配置注解第三步:解析注解int age();String sex() default "女";注意:自定义注解要用【@interface】在自定义注解中,其实现部分只能定义注解类型元素!说明:a.访问修饰符必须为public,不写默认为public;b.该元素的类型只能是基本数据类型、String、Class、枚举类型、注解类型以及一维数组;c.该元素的名称一般定义为名词,如果注解中只有一个元素,名字起为value最好;
2026-04-02 07:26:05
416
原创 maven导入spring框架
spring-jdbc包括了一些如jdbcTemplate的工具类。4.Spring test依赖:方便做单元测试和集成测试。在eclipse导入maven项目,在pom.xml文件中加入以下内容。2.Spring dao依赖。3.Spring web依赖。1.Spring核心依赖。
2026-04-02 00:52:34
71
原创 HDFS的架构优势与基本操作
如今,数据正以指数级增长,各行各业都在追求更多的数据存储、高效的数据处理和可靠的数据基础来驱动业务的发展。Hadoop Distributed File System(HDFS)作为Hadoop生态系统的核心组件之一,成为构建可靠的大数据基础的不二选择之一。本文将深入剖析HDFS的架构与优势。HDFS(Hadoop分布式文件系统)是Apache Hadoop框架的一部分,设计用于存储和处理大规模数据集的分布式文件系统。HDFS产生的背景主要是为了满足处理大规模数据的需求。
2026-04-01 23:03:35
274
原创 初级爬虫实战——伯克利新闻
由于一个版面对应一篇文章,所以版面url 、更新时间、标题和文章是一样的,并且按照设计版面id和文章id的区别只是差了个01,所以可以传递版面url、版面id、更新时间和标题四个参数到解析文章的函数里面。由于该新闻只有一个模块,所以直接请求该模块地址即可获取该模块的所有信息,但是为了兼容多模块的新闻,我们还是定义一个数组存储模块地址。的字段,包含标题、内容,作者,发布时间,链接地址,文章快照 (可能需要翻墙才能访问)获取文章id,文章url,文章更新时间和当下操作时间。多模块的新闻网站例子如下(4个模块)
2026-04-01 05:35:14
401
原创 windows手动配置IP地址与DNS服务器以及netsh端口转发
在Windows系统中,配置主机的IP地址、子网掩码和网关地址可以通过以下步骤手动设置。这在某些情况下是必要的,例如当你需要确保网络接口使用特定的IP地址或网关时。
2026-04-01 02:30:05
443
原创 springboot 异步操作
future.get()` 和 `future.join()` 都是用于处理并发编程中异步任务的结果,但它们属于不同的编程框架或库,并且具有不同的用途和行为。- **库**: Java 的 `Thread` 类或 Kotlin 的协程(`join()` 在 Kotlin 协程中表现为 `await()`)。- 在 Java 中,`thread.join()` 会使当前线程(调用 `join()` 的线程)等待,直到目标线程终止。- `join()` 是 Java 线程的方法,用于等待一个线程完成。
2026-03-31 05:49:08
274
原创 Node.js v16 版本安装
(如果输入变量值之后没有自动创建【node_modules】文件夹,就在【node_global】下手动创建一个【node_modules】文件夹)1、找到安装的目录,在安装目录下新建两个文件夹【node_global】和【node_cache】然后你就会发现【node_global】里多出了一个【node_modules】文件夹。在【系统变量】中选择【Path】点击【编辑】添加【NODE_PATH】,点击【确定】【此电脑】-单击右键-【属性】-【高级系统设置】-【环境变量】
2026-03-31 02:36:14
214
原创 mybatis plus打印sql日志
首先,我们需要创建一个实现了接口的类,该类会将所有原本打算以DEBUG级别记录的日志改为以INFO级别记录。
2026-03-30 11:47:42
179
原创 Go Web框架全面对比:哪一款最适合你的项目?
如果你需要构建高性能的RESTful API,并且希望框架简单易用,Gin和Echo是最佳选择。如果你的应用需要实时通信(如WebSocket),Fiber是一个极好的选择,它在性能和开发体验上都表现出色。对于企业级应用或需要MVC架构的项目Beego提供了一个完整的解决方案。如果你正在构建微服务架构,且需要高度灵活的路由和中间件支持,Chi是非常合适的选择。每种框架都有其适用的场景,了解框架的特点和使用场景,可以帮助你更高效地完成Web开发任务。
2026-03-30 10:14:13
354
原创 RabbitMQ 的介绍与使用
消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。其主要用途:不同进程Process/线程Thread之间通信。那么为什么会产生消息队列呢?有几个原因:不同进程(process)之间传递消息时,两个进程之间耦合程度过高,改动一个进程,引发必须修改另一个进程,为了隔离这两个进程,在两进程间抽离出一层(一个模块),所有两进程之间传递的消息,都必须通过消息队列来传递,单独修改某一个进程,不会影响另一个;
2026-03-30 06:29:56
427
原创 springboot 异步操作
future.get()` 和 `future.join()` 都是用于处理并发编程中异步任务的结果,但它们属于不同的编程框架或库,并且具有不同的用途和行为。- **库**: Java 的 `Thread` 类或 Kotlin 的协程(`join()` 在 Kotlin 协程中表现为 `await()`)。- 在 Java 中,`thread.join()` 会使当前线程(调用 `join()` 的线程)等待,直到目标线程终止。- `join()` 是 Java 线程的方法,用于等待一个线程完成。
2026-03-28 08:18:22
195
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅