自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 收藏
  • 关注

原创 JWT 与 token 的生成和解析

前面章节我们已经讨论了,其中有一个重要的环节就是后端token的生成。本章节我们将针对token生成的过程和原理逐一讲述。

2025-05-24 17:20:19 825

原创 鲁班到家 师傅端

入驻信息填写 订单列表 订单详情 设置 诚信保证金 积分商城 钱包 更多

2025-05-22 16:37:14 88

原创 鲁班到家 客户端

定位、搜索页 领券详情页 二级页面 空调模版 保洁模版

2025-05-22 13:13:58 304

原创 微信小程序-获取用户手机号

uniapp 提供了ivcodecodecodecodewx.login()codecode下面我们来分别看一下👇调用获取加密手机号数据(encryptedData 和 iv),并将 uni.login 生成的 code 发送给后端,以便后端生成 session_key 用来解密。:使用 session_key、encryptedData 和 iv 解密获取真实手机号。

2025-05-21 17:09:16 179

原创 微信登录流程 前后端逻辑

2. 后端用 code 换取 OpenID、unionid 和 session_key (后端调用微信官方提供的。7. 根据 OpenID 获取用户信息或 session_key。后端返回 用户登录态Token 、OpenID 给前端。前端调用 wx.login() 获取 code。5. 前端在后续请求中携带 Token。6. 后端验证 Token 有效性,并。从 Token 中解析出 OpenID。根据 OpenID 生成 Token。

2025-05-21 13:14:11 325

原创 宝塔面板中,配置 https协议

在前面的章节中,我们的接口 http://www.wenbaby.tech:8888/order/list 已经可以正常访问,但是这里面存在两个安全隐患:1.http协议;2.8888端口号暴露。本章节我们讲述:如何将我们的 http协议配置为https,并且将8888端口号代理到其默认端口443。

2025-05-20 15:44:29 764

原创 Mybatis-plus 条件构造器 Wrapper

Wrapper 是 MyBatis-Plus 提供的 条件构造器工具类,用于构建复杂的数据库查询条件。它的作用是简化 SQL 条件构造,但它不能替代 Mapper 层。最终仍需通过 Mapper 接口的方法(如 selectList、selectOne 等)执行数据库操作。它不涉及 SQL 的执行逻辑(如连接数据库、设置参数、返回结果映射等),这些仍由 Mapper 层负责。

2025-05-16 15:05:22 192

原创 配置域名、SSL证书

上一章我们讲了如何将后端项目部署到阿里云服务器,此时我们前端项目中已经可以通过阿里云的ip地址正常访问后端项目中的接口。但是,由于我们还没有买域名,我们依然不能通过域名来请求,并且我们的前端微信小程序只支持 https 协议的接口请求,而我们同样未支持https。所以我们接下来需要:买域名并绑定SSL证书。(域名注册) ---> 实名认证 ---> 域名解析 ---> 域名备案 --->---> 绑定SSL 证书(创建证书)相关入口备案流程。

2025-05-09 10:59:47 199

原创 宝塔面板部署 springboot + mysql 项目

(初次需先执行 java -version 确认jdk是否安装成功)先进入上一步的jar包目录,然后执行。导入 sql 脚本文件。添加服务器本地数据库。

2025-05-08 16:28:58 244

原创 React.memo 和 useMemo

React 中,通常父组件的某个state发生改变,会引起父组件的重新渲染(和其他state的重新计算),从而会导致子组件的重新渲染(和其他非相关属性的重新计算)问题一:如何避免因为某个state变化,导致父组件的中其他属性(state)的重新计算?useMemo如何避免因为父组件的重新渲染,导致子组件中非相关属性的重新计算?React.memo。

2025-04-25 15:19:37 457

原创 认识 IO 流

字节输入流作用:以内存为基准,可以把磁盘文件中的数据以字节的形式读入到内存中去。

2025-04-16 10:22:21 187

原创 Stream 流

终结方法:调用完成后,不会返回新的Stream了,没法继续使用流了。

2025-04-15 14:52:15 157

原创 集合 Collection、Map

由于 set 无索引,所以不能用 list 遍历的第一种方法,以下三种方法和 list 后三种方法一样。

2025-04-14 17:33:10 178

原创 泛型和包装类

这些基本数据类型并非引用类型,所以不能直接用作泛型参数。为了能让基本数据类型用于泛型,Java 提供了对应的包装类就是把基本数据类型的数据包装成对象的类型。

2025-04-14 16:46:28 266

原创 主键索引和唯一索引的区别

主键索引和唯一索引在数据库中都用于保证数据的唯一性,但它们之间存在一些关键区别,下面从多个方面为你详细介绍:

2025-04-09 15:38:24 437

原创 spring 依赖注入的好处

spring框架通过依赖注入,对象之间的依赖关系由 Spring 容器来管理,而不是在代码中硬编码。这意味着一个类不再需要自己创建和管理其依赖的对象,而是由 Spring 容器将依赖的对象注入到类中。

2025-04-09 14:45:23 300

原创 chmod chown

2025-04-08 13:51:10 92

原创 思维模型笔记

思维模型

2025-01-23 15:13:05 131

原创 武林苍穹,巅峰鏖战

其一者,身着墨色劲装,衣袂飘飞若暗夜之幽灵,眼神犀利如鹰隼之锐眸,仿佛可穿透乾坤万象,直抵灵魂深处。长剑与折扇交击之声,清脆嘹亮,仿若龙吟虎啸,震颤着整个山谷,余音袅袅,久久不绝。四周之树叶被劲气所激,纷纷扬扬飘落,恰似漫天飞舞之雪花,凄美而壮丽,为这场巅峰对决增添了一抹空灵的诗意。每一个招式皆经过殚精竭虑之算计,每一次反击皆恰到好处,妙至毫巅,仿佛是一场精心编排的神圣舞蹈,令人叹为观止,心醉神迷。白衣高手则以柔克刚,折扇舞动之间,如行云流水,巧妙化解着对方之攻击,似一位优雅的舞者,在死亡的边缘轻盈跳跃。

2024-11-05 16:03:04 131

原创 JDK JRE JVM 三者的关系

中 的 javac 编译器将 .java 文件编译为 .javac 字节码文件 (编译)运行程序,确保程序能够在不同平台上正确执行(实现跨平台)执行 .class 文件 (运行)

2024-05-30 14:44:14 408 1

原创 nodejs 中间件

以上列举了一些常见的 Node.js 中间件类型及其对应的库。实际应用中,根据项目需求可能会选用更多特定功能的中间件,如速率限制、API 版本控制、请求验证(如校验 JSON Schema)、数据库连接管理、模板引擎支持等。Node.js 中间件通常是指用于 Web 应用开发框架(如 Express、Koa、Hapi、Fastify 等)中,对 HTTP 请求生命周期进行拦截、处理和传递的一系列可复用函数。

2024-04-23 17:51:15 1604 1

原创 redux-persist

【代码】redux-persist。

2024-04-12 15:54:26 389

原创 微服务-7 Docker

容器是镜像的实例,仓库中存储着镜像。

2024-04-11 10:46:21 334

原创 微服务-6 Gateway网关

此时浏览器访问 localhost:10010/user/list 后正常返回数据,说明网关已生效,其原理流程图如下:

2024-04-10 17:15:15 510

原创 微服务-5 Feign

提供者:

2024-04-10 16:58:49 145

原创 微服务-4 Nacos

服务列表:服务详情:

2024-04-10 15:12:58 433

原创 微服务-3 Ribbon

2024-04-10 13:46:13 128

原创 微服务-2 Eureka

同理再注册完order-service后,刷新启动页面:

2024-04-10 12:58:31 482

原创 微服务-1 (黑马程序员)

方案解决中出现的问题:

2024-04-10 11:12:32 161

原创 微服务(狂神)

2. Dubbo3.

2024-04-09 17:54:05 538

原创 uniapp 微信小程序 输入框跟随手机键盘弹起

需求:手机键盘弹起后,页面底部的输入框跟随弹起,且页面不被顶上去。

2024-03-29 11:59:13 2330 1

原创 uniapp中使用u-popup组件导致的弹框下面的页面可滑动现象

【代码】uniapp中使用u-popup组件导致的弹框下面的页面可滑动现象。

2024-03-29 11:48:16 978

原创 http1 http2 http3的区别

HTTP/3还采用了TLS 1.3作为默认的安全层协议,提供了更强的安全性。HTTP/2:HTTP/2是HTTP/1.1的升级版本,引入了一些新的特性来提高性能。此外,HTTP/2还引入了头部压缩,减少了传输的数据量,提高了效率。此外,HTTP/1.1没有对头部压缩和请求优先级的支持,这导致了较低的性能和效率。总结起来,HTTP/2和HTTP/3相较于HTTP/1.1在性能和效率方面有显著的改进。HTTP/1.1、HTTP/2和HTTP/3是HTTP协议的不同版本,它们在性能、效率和安全性方面有一些区别。

2024-01-09 15:45:50 978

原创 三次握手四次挥手

第二次握手:服务器接收到客户端的请求后,确认连接请求,并发送一个同样带有特殊标志(SYN)和确认序列号(Ack)的数据包作为回应,同时也设置自己的初始序列号。第三次握手:客户端接收到服务器的回应后,再次确认连接请求,并发送一个带有确认序列号的数据包给服务器。第四次挥手:客户端接收到服务器的关闭请求后,发送一个确认数据包(ACK)作为回应,告诉服务器已收到关闭请求。此时,连接关闭完成。第二次挥手:服务器接收到客户端的关闭请求后,发送一个确认数据包(ACK)作为回应,告诉客户端已收到关闭请求。

2024-01-09 15:27:50 442

原创 浏览器缓存

浏览器缓存是指浏览器在访问网页时将一些资源(如 HTML、CSS、JavaScript、图像等)保存在本地存储器中,以便在后续的请求中直接使用这些资源,而无需再次从服务器下载。头字段,将上次缓存的资源的最后修改时间或 ETag 值发送给服务器。在后续的请求中,如果浏览器发现已经有缓存的资源,并且缓存仍然有效(根据缓存相关的字段判断),浏览器会直接从缓存中加载资源,而不必再次向服务器发送请求。当浏览器首次请求一个网页时,服务器会返回该网页的资源,并在响应头中设置一些缓存相关的字段,如。

2024-01-09 15:21:01 432

原创 mybatisPlus CodeGenerator 代码生成

在 test 目录下新建 CodeGenerator 类,用于 mybatis-plus 自动生成 java 代码。

2024-01-07 12:03:01 548

原创 webSocket 聊天室 node.js 版

全局安装vue脚手架创建 vue3 + ts 脚手架。

2023-08-16 17:43:16 1468 1

原创 react-redux legacy_createStore

【代码】react-redux。

2023-08-06 16:09:17 847

原创 仓库管理系统 - 原型图

管理员管理:用户管理: 仓库管理:物品分类管理: 物品管理: 记录管理:

2023-06-07 15:48:35 849

原创 three.js 轨道控制器

【代码】three.js 轨道控制器。

2023-05-08 22:59:22 298

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除