- 博客(14)
- 收藏
- 关注
原创 交易平台审批流数据库表设计思路
要使用审批流前提是维护审批节点信息即审批流程结构。新增节点,名称,类别,级别设置审批人,下一个节点因为需要实现的审批流对应的流程比较简单所以只用了三张表,其中审批节点表就代表流程结构,如果是比较复杂的流程如条件流程,那么流程结构就不适合以这种形式维护可以用低代码流程编辑器来实现,前端提供一个可视化的界面来编辑流程结构方便又省事,编辑完后以Json格式导出流程结构信息在维护到数据库,审批时根据Json格式的流程信息来进行。
2025-02-15 16:06:31
814
原创 Java 进程无故宕机,到底是人性的扭曲还是道德的沦丧(全是干货...)
总结一下,这两次 Java 进程无故宕机,根本原因竟然都是意外的乌龙事件。第一次是 Jenkins 帮忙每天准时“宕机闹钟”,构建项目顺带“干掉”进程,偏偏领导和我都一时想不起来有这回事;第二次是同事的脚本操作精准打击,莫名其妙连我的项目都一并送上“西天”。所以,有时候 Java 进程就像一个脾气有点大的大厦管理员,遇到妖魔鬼怪才不管三七二十一直接跑路——可当你抽丝剥茧、一顿分析,才发现是自己给自己制造了些尴尬。遇到 Java 进程宕机,先冷静再细心,除了硬核分析,别忘了排查意料之外的“操作事故”。
2024-11-17 14:42:23
852
原创 Golang sync包介绍(1)
readerSem— 读写锁释放时通知由于获取读锁等待的 Goroutine;writerSem— 读锁释放时通知由于获取读写锁等待的 Goroutine;w互斥锁 — 保证写操作之间的互斥;— 统计当前进行读操作的协程数,触发写锁时会将其减少阻塞后续的读操作;readerWait— 当前读写锁等待的进行读操作的协程数,在触发Lock之后的每次RUnlock都会将其减一,当它归零时该 Goroutine 就会获得读写锁;当读写锁被释放Unlock。
2024-10-21 20:54:48
695
原创 Golang channel介绍
go语言有一句很经典的话,不要通过共享内存来通信,而应该通过通信来共享内存;关闭一个末初始化的 channel 会产生 panic。channel只能被关闭一次,对同一个channel重复关闭会产生 panic。向一个已关闭的 channel 发送消息会产生 panic。从一个已关闭的channel读取消息不会发生panic,会一直读取所有数据,直到零值。
2024-10-11 22:17:06
1169
6
原创 Golang Map介绍
存储基于key-value键值对模式,key不能重复,value可以重复;增、删、改、查时间复杂度为O(1);在go语言中,map底层采用hash表,用变种拉链法拉解决hash冲突;
2024-08-10 18:08:33
706
原创 SpringBoot+Vue+WebSocket实现全双工通信实践。
在浏览器(客户端)和服务器交互过程中,大部分是浏览器向服务器发送请求然后服务器响应数据给浏览器。但是在一些特定场景中(实时通信系统)需要服务器在数据更新或特定事件发生时,立即将信息推送给客户端,而无需客户端轮询(即定期请求)服务器。比如我现在就有一个需要在前端实时展示用户未读消息的需求。要实现服务器实时推送数据给前端常用的解决方案就是使用WebSocket通信。WebSocket 协议是一种在单个 TCP 连接上提供全双工通信的协议,它允许客户端和服务器之间进行实时的双向数据传输。
2024-07-10 14:05:18
718
原创 使用 MockMvc 测试 Spring Boot 接口
在 Spring Boot 应用中,测试接口是确保应用正确工作的关键步骤。MockMvc 是 Spring 提供的一个强大的测试工具,允许我们在不启动完整 Web 服务器的情况下模拟 HTTP 请求并验证响应。本文将介绍如何使用 MockMvc 测试 Spring Boot 接口。
2024-07-09 15:51:06
396
原创 Go和Java的区别
作为一名Java开发者,我早已习惯了其严谨的对象模型、丰富的API和强大的跨平台能力。然而,当我踏入Go语言的世界时,我被其简洁、高效和直接的风格深深吸引。Go语言,这个由Google精心打造的开源编程语言,不仅为我带来了全新的编程体验,也让我对编程有了更深刻的理解。在学习完Go的基本语法后,我深感两种语言在设计理念、语法特性和应用场景上的巨大差异。Go的简洁语法、强大的并发支持和静态类型安全,让我对编程有了全新的认识。与此同时,我也发现Java在面向对象编程、内存管理和生态系统方面的优势。
2024-06-11 15:45:47
1363
2
原创 扫描登录原理
在扫码登录的过程中,用户首先在需要登录的应用或平台上触发扫码登录功能,系统会生成一个包含特定信息的二维码。因为有了确认登陆这个逻辑,所以就需要临时token,这样我们才能将确认和扫码关联起来:请求中携带了临时token,这个token之前只在扫码时候返回给过手机端,通过这个凭证,可以一定程度证明扫码的是你,现在确认登陆的还是你。这里的请求登录方为 Web 端,已登录方为 APP 端,登录凭证可以是用户信息,也可以是换取用户信息的凭证,而特定媒介是某一张二维码。,此时的手机一定是登录的,不存在没登录的情况。
2024-04-28 11:36:39
573
1
原创 数据结构——哈夫曼树(最优二叉树)
带权路径长度(WPL)是从根节点到某一节点的路径长度与该节点权的乘积。当用n个带权值的叶子节点构建一棵二叉树,如果这棵二叉树的带权路径长度最小,称这棵树为最优二叉树或哈夫曼树,因此在构建哈夫曼树应遵循权值越大的节点离根节点越近。节点的带权路劲长度:从根节点到该节点之间的长度与该节点的权的乘积。1.在n个带权节点中选出两个最小的节点,将其组成一个新的二叉树,且新二叉树的根节点的权值为左右子节点的权值和。路劲:在一棵树中从一个节点到另一个节点的通路,称为路劲。节点的权:每个节点赋予一个值称为该节点的权值。
2024-04-25 15:04:42
1441
3
原创 编辑距离算法在项目中的应用
当用户输入的关键字与文档中的关键字不完全匹配时,编辑距离算法可以帮助确定最接近的匹配结果或进行拼写纠错。利用编辑距离算法,可以比较用户输入的文字与已有文字库中的文字之间的相似度,从而推荐最合适的文字。为了让项目有亮点,引入了一些看起来高大上的东西如(指纹登录,语音识别还有推送算法),推送算法就是将老人发布的服务推送给合适的志愿者提高接单效率。项目的核心功能是老年人在APP发布需要的服务(家政服务,陪玩陪聊等),志愿者通过查看发布的服务列表选择合适的进行接单。
2024-04-15 11:34:59
769
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人