自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 前端视角理解 Java Framework 核心

本文介绍了一个从前端开发者视角实现的极简Java Web框架MiniJavaWeb。该框架采用与前端框架相似的设计思路,通过自定义注解(@Controller、@RequestMapping)实现路由映射,使用反射机制动态调用控制器方法。核心组件包括:DispatcherServlet(请求调度中心)、HandlerMapping(路由映射器),其工作流程分为初始化阶段(扫描控制器建立路由表)和请求处理阶段(匹配并执行控制器方法)。文章还对比了Java框架与前端框架的对应特性(如注解对应装饰器、控制器对应组

2025-12-25 15:53:54 911

原创 从表关联其他表字段组合成新表

摘要:在实际业务场景中,通过多表关联查询将主表、从表和相关字典表组合成展示用"虚拟新表"是数据展示层的核心需求。这种操作解决了数据库范式化存储与业务展示需求之间的矛盾,常见于电商订单明细、物流工单等场景。实现方式包括实时关联查询、预构建宽表和视图三种,各具优缺点。关键注意事项包括关联字段索引优化、控制关联表数量、处理空值场景等。这种表关联展示方式既保证了数据完整性,又兼顾了业务视角需求,是数据库设计与前端展示之间的重要桥梁。

2025-12-10 14:51:54 910

原创 什么是聚合和组合

聚合与组合是面向对象中描述整体-部分关系的两种关联类型。聚合表示松散关系(如公司-员工),部分可独立存在;组合表示强耦合关系(如订单-明细),部分必须随整体创建销毁。关键区别在于部分对象的生命周期是否依赖整体对象。聚合通过依赖注入关联对象,组合则由整体直接创建管理部分对象。这种区分对UML建模和数据库主从表设计都有重要指导意义。

2025-12-10 14:50:48 396

原创 主表和从表的关系

数据库表间关系主要有三种:一对多(1:N)、一对一(1:1)和多对多(N:M)。一对多是最常见的,主表通过主键关联从表外键;一对一通常用于拆分大表或存储扩展信息;多对多需借助中间表实现。设计时应确保主外键一致性、建立外键约束,并考虑操作规则(如级联删除)和性能优化(外键索引)。常见误区包括不加外键约束、多对多未拆中间表等。合理的主从表设计能保证数据一致性并提高查询效率。

2025-12-10 14:49:12 653

原创 API 网关校验 TenantID 的实现方案(含流程、细节、代码示例)

摘要:API网关校验TenantID是确保多租户系统安全的第一道防线,核心流程包括请求携带TenantID、网关提取、合法性校验和结果处理。TenantID可通过HTTP请求头、URL路径参数或JWT Token载荷携带,推荐采用"JWT Token为主,请求头为辅"的方式。校验需完成格式校验、存在校验和状态校验三个维度,确保租户合法可用。实现方案包括基于Nginx(OpenResty)、Spring Cloud Gateway和Kong网关的技术方案,并通过缓存优化、熔断降级等策略提升

2025-11-25 11:19:19 772

原创 完整的多租户系统架构图

基于前面阐述的多租户系统核心逻辑(共享资源 + 三级权限 + 分层隔离),以下是。

2025-11-25 11:17:43 345

原创 多租户架构的三级权限体系:设计逻辑与精准控制实现

多租户三级权限体系采用"系统管理员-租户管理员-租户用户"分层设计,实现精准权限控制。系统管理员负责全局资源分配和租户生命周期管理;租户管理员专注本租户内的用户、权限和组织架构管理;租户用户仅拥有最小必要权限。体系通过功能权限、数据权限和操作权限的三重隔离,确保跨租户数据安全,同时支持租户内部灵活配置。设计遵循权限最小化、责任清晰化和配置灵活化原则,配套全链路审计机制,兼顾安全性与管理效率。

2025-11-25 11:16:06 865

原创 什么是系统多租户

摘要:多租户系统是一种软件架构模式,通过一套系统为多个租户(企业/组织)提供服务,实现资源共享与数据隔离。其核心在于平衡"共享"与"隔离",主要分为数据级、Schema级和实例级三种隔离方式,隔离性依次增强但成本也更高。相比多用户系统,多租户以组织为隔离单位,具有降低成本、简化运维等优势,但也面临数据安全、性能优化等挑战。该架构广泛应用于SaaS产品(如钉钉、Salesforce等),是云服务规模化的关键技术。

2025-11-25 11:14:44 745

原创 组件兼容vue2,3 的写法

摘要:这段代码展示了一个兼容Vue2和Vue3的组件实现方案。通过使用选项式API(避免组合式API)、同时定义beforeDestroy和beforeUnmount生命周期钩子、检测Vue版本差异,并采用通用模板语法,确保组件在两种版本中都能正常工作。组件包含基本的计数功能,并实现了全局注册和模块导出的多种方式,具有良好的跨版本兼容性。(149字)

2025-09-08 09:44:05 357

原创 阿里云购买的域名怎么绑定ip 地址

阿里云域名绑定IP操作指南:登录控制台进入域名管理页面,选择需要解析的域名后添加记录。设置主机记录(@、www等)、选择A记录类型、填写目标IP地址,保持默认线路和TTL值,保存后等待解析生效(通常几分钟至几小时)。解析完成后域名即可指向指定IP地址。

2025-08-08 16:23:12 496

原创 vue 真实dom 手动更新数据

vue 真实dom 手动更新数据

2025-07-31 18:37:24 185

原创 设计学生管理系统的数据库

学生管理系统数据库设计与核心业务实现摘要:本文详细介绍了学生管理系统的数据库架构设计,包含用户管理、学生/教师信息、课程安排、成绩管理等20张核心数据表的结构定义。系统采用角色权限分离设计,支持学生、教师和管理员三类用户。重点分析了"课程成绩管理与学分认定"这一最复杂业务,涉及多表关联、学分计算、绩点换算等逻辑,并提供了Node.js实现的伪代码示例。系统通过自动化流程处理成绩录入、审核和学分计算,确保数据一致性,同时支持学生多专业管理、考勤记录等扩展功能。数据库设计考虑了灵活性和可扩展性,为教育管理提

2025-05-30 17:23:33 1438

原创 js 动态执行模块代码

特性说明运行时动态性代码在运行时生成/加载,而非静态写入文件环境隔离通过限制作用域,避免污染全局环境CommonJS 兼容直接操作exports对象,模拟 Node.js 的模块系统行为灵活性可用于插件、工具链、沙箱等需要动态逻辑的场景。

2025-03-27 10:57:16 457

原创 配置SourceTree使用SSH

,输入密码(如果生成时设置了)。打开SourceTree,进入。选择你的私钥文件(如。

2025-03-10 16:45:03 1380

原创 SourceTree配置SSH步骤详解

完成以上步骤后,SourceTree即可通过SSH与远程仓库交互。如果仍有问题,检查SSH配置路径或重新启动SourceTree。:在SourceTree中使用SSH格式的仓库地址(如。设置一个安全的密码(可选,但建议)。),输入密码(如果生成时设置了)。打开终端(或Git Bash)。按回车确认默认保存路径(通常为。(用文本编辑器打开并复制内容)。打开SourceTree,进入。中修改URL为SSH格式。选择你的私钥文件(如。:确保私钥文件权限为。

2025-02-28 14:06:37 2069

转载 新手 git clone 使用 ssh

这就是让你再输入一次密码,就跟我们注册账号时候设置密码需要设置两次一样。到这里你的秘钥就设置好了,你会收到这段代码提示。就是让你输入密码,如果你设置了密码,那在你使用ssh传输文件的时候,你就要输入这个密码。为了避免麻烦,建议不用设置,直接回车。执行上述命令后,系统会提示你输入文件保存路径和密码短语。如果你想直接生成没有密码的密钥,可以按回车接受默认设置。的内容添加到Git服务器的SSH keys中,你就可以通过SSH进行认证,而不是每次都输入密码。如果文件已经存在,那么你可以跳过步骤a,直接进入步骤b。

2025-02-24 16:10:12 1579

原创 ts 快速基础回顾

typescript 知识回顾

2024-12-11 11:00:55 417

原创 Node.js 发展史

Node.js 16.0.0 (2021年4月20日): 引入了 Node.js 中的重要新特性之一,即异步本地存储(AsyncLocalStorage)。Node.js 4.0.0 (2015年9月8日): 合并了 io.js 项目,标志着 Node.js 社区的重新统一。Node.js 0.4.0 (2010年4月6日): 引入了事件循环(Event Loop),这是 Node.js 的核心特性之一。Node.js 0.8.0 (2012年6月25日): 增加了更多的核心模块和改进的性能。

2024-10-29 11:35:05 2090

原创 让一个元素标签点击无反应

在 JavaScript 中,可以通过阻止事件的默认行为和冒泡来防止点击产生任何效果。这三种方法都可以有效地使一个元素在点击时无反应,根据实际需求选择合适的方法。如果元素上已经绑定了点击事件处理程序,可以在不需要响应点击时移除它。,使得元素不会响应任何鼠标事件,包括点击。

2024-08-21 10:23:26 516

原创 sql 常用建表脚本

【代码】sql 常用建表脚本。

2024-07-25 10:00:02 225

原创 mysql 简易版流程审批系统, 建表,含 sql 执行流程

【代码】mysql 简易版流程审批系统, 建表,含 sql 执行流程。

2024-07-23 16:05:32 594

原创 mysql 导出导入 数据库

导出 MySQL 数据库可以通过多种方法实现,最常见的方法是使用mysqldump工具。

2024-07-10 17:38:36 2309 2

原创 清理睡眠文件

"Win+R"打开运行,输入"cmd"回车;在命令提示符窗口中,输入"powercfg.exe -h off",回车。这将禁用休眠功能并删除休眠文件(hiberfil.sys)。当睡眠被关闭后,您将不能再使用您的计算机的睡眠模式。如果您不必进入睡眠状态,而您又希望在您的硬盘上腾出更多的空间,这一步将有助于您缓解您的压力。

2024-07-04 09:58:14 956

原创 前端 使用 crypto 对称加密 demo

【代码】前端 使用 crypto 对称加密 demo。

2024-04-07 18:13:56 451

原创 node 使用 crypto 对称加密 demo

【代码】node 使用 crypto 对称加密 demo( 实战例子 )

2024-04-07 17:09:22 301

原创 H5拖放 (简单学习demo)

【代码】H5拖放 (简单学习demo)

2024-04-01 15:38:05 152

原创 cv2 要下载哪个包

这将从 PyPI 上下载并安装 OpenCV 的 Python 包。

2024-01-31 10:09:26 1252

原创 win10 运行程序不弹窗确认

请注意,更改这些设置可能会降低系统的安全性。用户账户控制(UAC)是一项安全功能,可以防止未经授权的更改。关闭UAC或减少其安全级别可能会增加系统受到恶意软件攻击的风险。确保在更改这些设置之前了解其潜在风险,并谨慎操作。

2024-01-31 09:59:00 4522

原创 node 实现一键发送邮件功能

【代码】node 实现一键发送邮件功能。

2024-01-30 17:39:11 461

原创 局域网开启服务器,放开防火墙设置操作

【代码】局域网开启服务器,放开防火墙设置。

2024-01-25 17:07:18 919

原创 最新的配置淘宝镜像的淘宝官方提供的方法

最新的配置淘宝镜像的淘宝官方提供的方法。

2024-01-19 11:33:36 505

转载 windows下nginx基本指令

windows下nginx基本指令_nginx命令 windows-CSDN博客

2024-01-15 13:45:30 82

原创 vue3 挂载 组件

【代码】vue3 挂载 组件。

2023-10-12 15:28:38 659

原创 js Node环境 浏览器环境 异步兼容处理

【代码】js Node环境 浏览器环境 异步兼容处理。

2023-10-08 15:45:39 164

原创 用原生 js 模拟多线程运行

【代码】用原生 js 模拟多线程运行。

2023-09-28 14:53:04 221

原创 本地 ip映射 自定义域名

请注意,这种修改只会在你自己的计算机上生效,其他人无法通过该域名访问你的本地主机。如果你想让其他人也能够通过该域名访问你的本地主机,你需要进行更多的配置,例如设置端口转发或者使用反向代理等。

2023-09-26 13:42:55 2043

原创 分享一道有趣的闭包面试题

【代码】分享一道有趣的闭包面试题。

2023-09-22 10:15:15 83

原创 小技巧,前端下载文件时,更换服务端的文件名

前端这时候如果直接拿来window.open('http://example.com/file.txt'),这时下载下来的文件则是download的属性值 'new_file.txt'。所以, 需要模拟通过点击 a标签的小技巧来完成文件名的转换。那么浏览器的下载的文件名则默认为 file.txt。

2023-09-12 16:01:04 990

转载 分享一个非常简洁,学习js编译器原理的库

GitHub - jamiebuilds/the-super-tiny-compiler: :snowman: Possibly the smallest compiler ever

2023-06-29 16:38:00 98

原创 渲染进程里无法使用node模块 Uncaught ReferenceError: require is not defined

v12.0.0 的 contextIsolation 的默认值改了。所以今后要在渲染进程里调用 require 的话,还需要加上 contextIsolation: false。如果已经增加下面的内容,但是还是报错。出现这个问题是因为官方为了安全性,将。

2023-03-24 16:14:59 633

yolov3.weights

yolov3.weights

2023-11-10

Tesseract-OCR.zip 图片文字识别 无需安装,直接解压即可

内含详细操作过程, 萌新,不会代码也能上手。

2023-10-12

使用nodejs 实现远程重启电脑, 重启app , 或者针对各种原因执行脚本等(注:需要修改代码) 工具

已经安装好nodejs环境,再 npm i 。 (可能需要外网服务器做中间层)

2023-10-09

解决robotjs npm i 安装失败 node-modules 包 , 包含 win7 及 win10以上的两个版本

解决robotjs npm i 安装失败问题 , 无需安装, 直接复制robotjs文件,粘贴在node_modules,即可使用。 里面包含对应node的版本安装包。

2023-10-09

vue2 源码简易版,涵盖vue最核心思想, 初学者也能看懂!

vue2 源码demo 简易版, 总代码量 500+ 行!!! 半天初学者了解vue 核心运行全过程。

2023-10-09

空空如也

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

TA关注的人

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