- 博客(81)
- 收藏
- 关注
原创 兑换码算法设计
2.2,这个算法是,把那 32bit 中的,每 4bit 读成 十进制数,再乘对应的权重(比如密钥是 323,找到对应位置的 4 个 bit,读成十进制就是对应的权重了)2.4,别忘了,因为我们有很多串密钥,所以签名用的哪其中一个密钥,也要指明放进去这 18bit 中,要不然自己都不无法鉴别兑换码是不是正确的。这样就是我们的兑换码了。这里使用的算法就是数字加权求和,最后算出来的值,就是用了密钥签名过后的值。2.5,比如我有 16 串密钥,那么 18 个 bit 中的其中 4 个比特就用来标明用的哪个密钥。
2025-11-25 00:20:58
157
原创 severless架构
serverless架构,可用阿里云的函数计算部署应用,里面部署的应用有版本控制,里面的别名可以用作灰度发布。用了阿里云,就全套都用阿里云的,数据库也用阿里云的计量收费。
2025-11-18 12:28:36
259
原创 ERROR: In file ‘./docker-compose.yaml‘, service ‘name‘ must be a mapping not a string.
【代码】ERROR: In file ‘./docker-compose.yaml‘, service ‘name‘ must be a mapping not a string.
2025-11-10 14:08:25
248
原创 Unable to decode data. channel: [id: 0x2bfd5c0f, L:/127.0.0.1:65113 - R:localhost/127.0.0.1:6379],
他们说可能的原因是用redisson-spring-boot-starter这个依赖后,只用redisson作为客户端,redission客户端其实并没有实现expire方法,是真是假我不知道。,redission-spring-boot-starter里面就有spring-boot-data-redis-starter。这个解决方法也是跌打误撞试出来的。真正的原因有知道的可以分享一下。GPT说是我redis版本低于5.0,其实不是这个问题。我当前的spring-boot是3.5.6。
2025-11-06 10:28:21
294
原创 javaweb调用dify接口并流式返回
不能用hutool的httprequest发请求,他是同步阻塞的。就算用了bodystream也没有用。环境:spring-boot(spring-web)、okhttp、搭建好的dify服务器。dify的接口就是sse接口。流式返回就是以sse的方式返回。
2025-10-23 21:44:39
451
原创 【解答疑惑】git执行cherrypick后到另一个分支,然后再合并会出现问题吗?
那有人说,我的commit不是只有modify(修改)的部分,还有add(新增)的部分。1.准备commit,然后cherrypick到另一个分支。我准备了一个commit,然后合并一下。可以看到最后,代码是没有问题的。最后分支1把分支2合进来了。3.检查一下,也是没有问题的。这个commit的操作是。
2025-10-22 09:56:57
184
原创 分类表,无限层级树表设计和实现
环境:spring boot、mybatis-plus、hutool工具包以前看很多代码实现真的很复杂,现在自己实现一下。
2025-10-14 14:35:35
402
原创 javaweb后端优雅处理枚举
但是,http://localhost:8080/test?videoStatus=DRAFT,这样就行。(只能用DRAFT,不能是Draft、draft,这个大小写敏感的,会抛出异常)。像这样,http://localhost:8080/test?videoStatus=0,这样就不行。1.前端用json的格式,都要能正确解析参数(反序列化)传入后端。但是如果是get请求中的请求参数呢?用了springboot-web自带的jackson注解。2.后端能正确把数值存到数据库(序列化)
2025-10-09 23:38:25
184
1
原创 创建索引失败,表一直查询不了
后面select * from sys_user_depart 两三分钟都不行。找到数字最大的那几个进程杀掉就可以了。中的表都可以用show关键字快速查表。
2025-09-18 14:39:27
242
原创 工作中真正常用的 git 操作
我是 java 语言所以用 idea 比较多,就很少会用 git status git log 了,idea 的 git 插件非常强大。常见的 add commit fetch push pull 都不说了。
2025-09-16 23:24:36
445
原创 springboot传输文件,下载文件
2.他还是想要用resources目录下的文件,于是他就迂回一下,先用ClassPathResource读出来,再写到临时文件中。用这个临时文件传输。是可以网络传输的,但是下载下来的文件会乱码。1.死不听劝,非要用类路径classpath下的(resources文件里面的文件)。3.传输excel文件,非要用xlsx,搞了一个小时都不知道咋搞,这个还是很复杂的,请好好复习JavaSE的IO和网络的IO。
2025-09-16 15:28:21
406
原创 触控板拖动鼠标迟钝
你就反复开关开关这个无线鼠标。我的触控板的指针拖动就不会迟钝了。我一开始的无线鼠标是开的,现在关了,触控板变回原来一样顺滑了。你的笔记本电脑是不是插了一个无线鼠标的USB。
2025-09-13 13:53:45
138
原创 CRUD代码总结
1.枚举类优雅处理字段。5.操作数据库(基本表和关联表)validation全局异常处理。exception全局异常处理。3.校验权限,要不要事务。
2025-09-12 15:21:05
88
原创 在使用git的很多操作是保持工作区干净
不要特别盲目自信说我熟练解决冲突,就算熟练解决冲突又咋样。你的git提交怎么写?难道写feat:xxxx新功能并且解决合并冲突吗。这样的commit,压根就是一个好的提交,不够直接,一个提交就解决一个事情。但是现实往往不这样,万一拉下来的代码和你当前工作区的代码有冲突,你必须要解决这个冲突。这是没办法的事情,尤其是自己合并代码冲突又不熟练。所以无论如何,想要推送代码时候,想要切换分支时候,想要检查commit时,都需要保持你的工作区干净。自己明明写完了代码,想要提交。你自己的代码还在工作区里面,
2025-09-12 14:12:55
184
原创 MybatisX插件没有一键生成代码按钮了
下载这个1.7.3版本的MybaitsX.发现MybatisX版本变成了1.6.3。我现在版本是IDEA 2025.02。
2025-09-11 16:59:10
677
原创 【真实场景】业务表原本是一对多的现在需要多对多解决方案
原本有一个questionBank题库表和一个chapter章节表,他们关系是一个章节可以有多道题目,一个题目只能存在于一个章节里面。现在我需要一个章节有多道题目,一个题目也可以被多个章节用到,这种多对多的关系。比如一道题目A,可以在第一章、第二章里面。但是我已经有很多逻辑在原来的questionbank表了,这样不太合适,新建一个多对多的表。
2025-09-10 22:22:22
583
原创 validator列表校验
⚠️但是他只能校验一个对象,并不能对对象列表中的对象进行校验。用了@Validated注解也会失效。现在自己封装了一个MyListValidator,用来循环校验。spring-validation本质是javax.validation。到controller中。
2025-09-05 15:00:20
263
原创 第一次实习总结
现在虽然不怎么使用很传统的软件开发模型了,但是好歹也要敏捷开发吧。事实上,我这个小厂甚至做的更绝。全程无UML。。。需要一天:1.项目组长与客户进行2.项目组长然后就找我来讲述需求,我就直接制作出(这里用的Axure,不知道有没有更快的)。(这个原型图画的时间很快,差不多一个上午,也就是两个小时的认真画)需要一天:3.然后大家会被组长安排负责某些功能(如果需求很多,还会开个会,照着原型给大家解释一下。4.大家去gitlab拉下原型图,就可以研究一下了。需要一天:5.自己。
2025-08-28 10:52:49
364
原创 jeecg-boot3.7.0对接钉钉登录(OAuth2.0)
2.租户id(tenantId),这里后端写的是defaultValue=0,但是怎么查,都查不到数据库。(或者全局搜索,这个page not found 啥啥啥,然后加上个任意字符串,也行)。⚠️如果之后遇到啥问题的话,在“安全设置”配一下“服务器出口IP”,自己用百度搜索IP,就能看到自己当前局域网出口ip了。⚠️这里配完之后“安全设置”的“重定向URL(回调域名)”也就配完了,这两个是同步的。所以建议:直接写死,因为你的dingding工作台应用就创建了这一个,写死没啥问题。就是租户id写错了。
2025-08-27 11:04:37
429
原创 在idea中git切换分支,但是我的文件没add,没commit
这是一个很悲伤的故事,我朋友一个下午写了4个小时的代码,差不多10多个类,都在切换分支的时候。然后所有代码都丢失了。博客提到通过撤回操作,能够显示出丢失的代码,这可能与代码管理相关。2.之前新增了这个文件,现在丢失了:直接右键这个文件之前放在哪个文件夹,然后Show History。1.之前改动了这个文件,现在丢失了:直接右键这个文件的Show History。经过半个小时的一点一点的耐心local history,终于找回了所有的东西。,然后一点点的revert,或者一点一点的合并代码。
2025-08-12 08:49:49
570
原创 DataGrip过滤表
这是一个开发小技巧,尤其是原本用低代码平台的时候,一开始就有很多的表。比如原本是用某低代码平台,自带了120张表。DataGrip过滤显示数据库对象 - 简书。其实我们开发只用专注于自己开发的表。
2025-08-11 16:11:23
341
原创 每次用localhost的时候,想一想你这台电脑真的localhost能访问吗
但是这个问题很蠢就是。就比如我jenkins,是在我的火山引擎服务器。我的gitlab-ce是在我的本机的docker-desktop上。jenkins去配置拉去gitlab,我自己下意识的写了一下localhost。自己很久很久觉得没啥问题。我经常犯一个错误,就是很少用服务器,基本都是开发环境,所有的中间件啊,都是本机上面自己有的。甚至还会用本机docker,基本就是localhost走天下。以后看到localhost一定要看看自己的主机是在自己的电脑吗?该内网穿透就内网穿透。
2025-08-03 22:30:54
139
原创 记录自己使用gitee和jenkins
一定要先更新jenkins再说,需要重启。(这个封装的jenkins镜像里面是一个docker + jenkins,我觉得非常好用,里面的docker.sock缺失了,所以需要自己挂载进去就好了)选择安装推荐的插件(一定会失败的,因为这个版本太老了)。我这里使用的是尚硅谷雷丰阳老师的自己封装的jenkins镜像(好像是2024-6月份的时候封装的,现在的版本有点老,不过没事)。1.安装docker,然后用docker安装jenkins。,不是0.0.0.0/24,别写错了。我用的云服务器,别忘了。
2025-07-31 23:17:55
685
原创 jenkins连接docker失败【还是没解决】
因为我的jenkins是用docker容器创建的,所以docker容器怎么能用127.0.0.1访问我这台电脑上的docker desktop呢。(这里是Cloud页面下选中了docker进行配)我之前明明在docker desktop中配置了 expose 2375端口(),按理来说这里输入tcp://127.0.01:2375就可以了。这里就用cpolar,免费创建一个tcp的隧道就行了。我用的是wsl + docker desktop。看作一个的机器,我的电脑也成一个机器,显然要用。
2025-07-30 09:42:13
442
1
原创 cn.dev33.satoken.exception.SaTokenContextException: SaTokenContext 上下文尚未初始化
我的springboot项目是springboot3,所以使用spring-boot3的依赖就好。
2025-07-30 09:03:24
484
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅