- 博客(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: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
原创 设计学生管理系统的数据库
学生管理系统数据库设计与核心业务实现摘要:本文详细介绍了学生管理系统的数据库架构设计,包含用户管理、学生/教师信息、课程安排、成绩管理等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即可通过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
原创 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
原创 清理睡眠文件
"Win+R"打开运行,输入"cmd"回车;在命令提示符窗口中,输入"powercfg.exe -h off",回车。这将禁用休眠功能并删除休眠文件(hiberfil.sys)。当睡眠被关闭后,您将不能再使用您的计算机的睡眠模式。如果您不必进入睡眠状态,而您又希望在您的硬盘上腾出更多的空间,这一步将有助于您缓解您的压力。
2024-07-04 09:58:14
956
原创 win10 运行程序不弹窗确认
请注意,更改这些设置可能会降低系统的安全性。用户账户控制(UAC)是一项安全功能,可以防止未经授权的更改。关闭UAC或减少其安全级别可能会增加系统受到恶意软件攻击的风险。确保在更改这些设置之前了解其潜在风险,并谨慎操作。
2024-01-31 09:59:00
4522
原创 本地 ip映射 自定义域名
请注意,这种修改只会在你自己的计算机上生效,其他人无法通过该域名访问你的本地主机。如果你想让其他人也能够通过该域名访问你的本地主机,你需要进行更多的配置,例如设置端口转发或者使用反向代理等。
2023-09-26 13:42:55
2043
原创 小技巧,前端下载文件时,更换服务端的文件名
前端这时候如果直接拿来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
使用nodejs 实现远程重启电脑, 重启app , 或者针对各种原因执行脚本等(注:需要修改代码) 工具
2023-10-09
解决robotjs npm i 安装失败 node-modules 包 , 包含 win7 及 win10以上的两个版本
2023-10-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2