- 博客(55)
- 收藏
- 关注
原创 深入解析 @RequestMapping 及其衍生注解:原理、用法与最佳实践
是 Spring MVC 的请求映射核心,通过路径、方法、参数等条件精准匹配请求,而衍生注解则简化了特定 HTTP 方法的配置,使代码更符合 RESTful 规范。合理使用这些注解可提升接口的可维护性、可读性和安全性,尤其在复杂场景中,结合路径参数、请求头、正则表达式等功能,能实现细粒度的请求处理逻辑。核心价值清晰的语义:衍生注解明确接口的 HTTP 方法语义,降低团队沟通成本。灵活的匹配支持复杂条件组合,满足多样化需求。规范的设计:遵循 RESTful 风格,提升 API 的可扩展性和一致性。
2025-04-17 12:24:19
254
原创 WebSocket 结合消息中间件的实时通知架构设计
通过WebSocket + 消息中间件的架构,实现了低延迟、高可靠的实时通知系统。该设计解耦了业务逻辑与消息推送,利用中间件的持久化和路由能力保障消息可达性,结合集群化部署和监控体系,适用于电商、IM、物联网等实时交互场景。
2025-04-17 11:12:37
509
原创 消息通知模块设计文档
用户操作触发业务事件(如审批拒绝)→ 生成消息记录 → 写入数据库 → 异步推送至消息队列(如RabbitMQ/Kafka)→ 消费者处理多渠道分发。:提供RESTful API接口,返回VO(View Object)对象,屏蔽数据库细节,适配前端展示需求。:消费状态(未读/已读/忽略)、处理状态(未处理/已处理/过期)通过枚举类固化业务语义。:CPU密集型(模板渲染)与IO密集型(网络请求)任务使用不同线程池,避免相互阻塞。:通过is_deleted实现软删除,结合历史表归档旧数据,确保主表查询效率。
2025-04-17 11:02:42
567
1
原创 函数式编程
Java通过函数式接口、Lambda表达式和Stream API支持函数式编程,提升了代码简洁性和效率。函数式编程强调不可变数据和高阶函数,适用于数据处理、并发编程等场景。合理应用这些特性,可以编写更高效、易维护的代码。
2025-04-15 10:22:24
596
原创 ZXing 库生成二维码有白边且大小不一致问题
import com// 关键参数说明: // dataRegionSize - 数据区域标准尺寸(不含白边) // marginSize - 四周边距宽度 // marginColor - 边距区域颜色 public static BufferedImage generateQRCode(String content , int dataRegionSize , int marginSize , Color marginColor) throws Exception {
2025-03-16 00:30:53
653
原创 Docker 篇
Docker 是一种轻量级容器化技术,通过标准化环境封装应用及其依赖,实现跨平台的高效部署。本指南将详细介绍 Docker 部署的全流程,涵盖基础环境搭建、容器配置、高级管理等核心内容。本指南提供了从基础到高级的 Docker 部署方案,适用于开发测试到生产环境的全生命周期管理。如需进一步了解特定场景的部署优化策略,可随时补充说明具体需求。
2025-03-06 19:37:42
436
原创 RBAC 模型介绍
它通过将权限与角色相关联,再将角色分配给用户,从而实现用户对资源的访问控制。在工作模型图中,用户与角色之间是多对多的关系,即一个用户可以拥有多个角色,一个角色也可以被多个用户拥有。角色与权限之间同样是多对多的关系,一个角色可以包含多个权限,一个权限也可以被多个角色所拥有。通过将权限分配给角色,再把角色赋予用户,间接实现了用户与权限的关联。RBAC 模型主要包含三个核心元素:用户(User)、角色(Role)和权限(Permission)。表示权限累积(上级角色自动获得下级权限)。带约束的RBAC2模型。
2025-03-05 10:48:32
977
原创 Spring Boot 切面执行优先级配置指南
在环绕通知(@Around)中,高优先级切面的通知方法先进入,后退出;而在前置通知(@Before)中,高优先级切面的通知方法先执行,后置通知(@After)和返回后通知(@AfterReturning)以及异常通知(@AfterThrowing)则相反,低优先级切面的通知方法先执行。在 Spring Boot 应用开发中,切面编程(AOP)是一项强大的功能,它允许我们将横切关注点(如日志记录、事务管理、权限控制等)从业务逻辑中分离出来,以提高代码的可维护性和可扩展性。的切面默认优先级最低(数值最大)。
2025-03-03 11:06:59
930
原创 OFDRW 核心功能开发文档
*** 可打印的ASCII表字母宽度所占用百分比* <p>* ASCII区间: [32,126]* <p>* 其中空格特殊处理,默认为半个字符宽度也就是 0.5*/// 空格 (ASCII 32)0.5,// 标点符号及特殊字符 (ASCII 33-47)// 数字 (ASCII 48-57)// 数字 '0' (ASCII 48) 的宽度从 0.58642578125 调整为 0.5// 标点符号及特殊字符 (ASCII 58-64)// 大写字母 (ASCII 65-90)
2025-03-01 11:46:25
306
2
原创 Deepseek 本地部署
环境准备系统要求+ **操作系统**: Linux (推荐Ubuntu 20.04+) / Windows (需WSL2)+ **Python**: 3.8++ **GPU**: NVIDIA GPU (显存≥16GB,推荐RTX 3090/A100) + CUDA 11.8+ **硬盘空间**: ≥50GB(模型权重和依赖)安装依赖```shell# 创建虚拟环境。
2025-02-20 10:10:05
928
1
原创 jjwt -- Token 生成解析技术指南
引言JWT(JSON Web Token)是一种基于JSON的、用于双方之间安全传输信息的简洁的、URL安全的令牌标准。在现代Web应用程序中,JWT作为一种高效且安全的认证机制,被广泛应用于用户身份验证和信息交换场景。本文旨在详细介绍JWT Token的生成与解析过程,为开发者提供一份专业的技术参考。JJWT简介JJWT是一个开源的Java库,专门用于处理JSON Web Tokens(JWT)。JWT是一种基于JSON的、用于双方之间安全传输信息的简洁的、URL安全的令牌标准(RFC 7519)
2025-02-06 16:10:53
1145
原创 java.sql.Date 弃用分析与替代方案
引言是 Java 标准库中的一个类,它继承自,主要用于在 Java 应用程序与数据库之间进行日期数据的传输。然而,随着 Java 语言的发展,以及其父类逐渐被认为存在设计缺陷,并被新的日期时间 API 所替代。本文将对的启用原因进行分析,并探讨其弃用原因及替代方案。启用原因分析SQL 日期类型的表示需求在 Java 应用程序与数据库交互时,需要一种方式来表示 SQL 中的日期类型(DATE正是为了满足这一需求而设计的。
2025-01-23 13:39:30
1425
原创 ZXing库 -- 生成二维码
引言二维码(QR Code)因其高密度的数据存储能力和易于扫描的特性,在现代社会中得到了广泛应用。ZXing是一个开源的二维码生成与读取库,它支持多种编程语言,包括Java。本指南将详细介绍如何在Java项目中使用ZXing库来生成带有透明背景的二维码。准备ZXing库</</</</</</</</</
2025-01-15 14:59:50
481
原创 适配器模式
适配器模式(Adapter Pattern)是一种结构型设计模式,它的主要目的是将一个类的接口转换成客户端所期待的另一种接口形式。这种模式使得原本由于接口不兼容而不能一起工作的类可以协同工作。适配器模式在软件开发中经常被用来使新的接口与老的接口能够一起工作,以利用现有的功能而不影响原有系统的稳定。
2024-11-28 16:58:53
1023
原创 状态模式S
状态模式(State Pattern)是行为设计模式的一种,它允许一个对象在其内部状态发生改变时改变其行为。这个对象被视为类型的有限状态机(Finite State Machine)。在状态模式中,我们创建表示各种状态的对象和一个上下文对象(context),该上下文对象持有当前状态的引用,并可以在不同状态之间切换。这些状态对象共享一个公共的接口,以便上下文可以与任何状态对象交互,而无需知道具体是哪个状态。这样,当状态发生改变时,上下文的行为也会相应改变,但上下文本身并不直接修改其状态,而是委托给状态对象来
2024-11-28 16:00:26
1079
原创 访问者模式
结构访问者模式(Visitor Pattern)是一种行为型设计模式,它允许你在不修改对象结构的情况下向对象集合中添加新的操作。这一模式通过将操作分离到单独的访问者类中来实现,这些访问者类包含了对各种对象类型进行操作的逻辑。结构。
2024-11-22 17:44:40
1015
原创 观察者模式和订阅模式
Subject接口,被观察者,代表被观察的对象,定义注册新观察者,移除观察者,和通知观察者三个接口。Observer接口,代表观察者,定义接收到通知后需要执行的动作接口try {});try {});try {if (!
2024-11-22 14:37:34
1171
原创 创建一个多模块应用
创建父模块在Spring Boot中,多模块应用是一种将应用程序分割成多个独立模块的开发方式。每个模块都是一个独立的Maven或Gradle项目,可以拥有自己的依赖、资源和配置。这种分割有助于代码的复用、维护以及团队协作。创建父模块新建一个空的 maven 项目,只保留 pom.xml修改父模块 pom 文件,打包方式改为 pom,增加公共依赖,spring-boot-starter,spring-boot-starter-web</</</</</</</</</</</</</</</</</
2024-11-18 15:59:59
437
原创 SpringBoot配置类
监听器接口主要用于监听ServletContext对象的创建和销毁事件。它关注的是Web应用的启动和关闭,以及ServletContext对象的状态变化。创建一个监听器类,实现接口@OverrideSystem.out.println("MyServletContextListener:监听器启动");@OverrideSystem.out.println("MyServletContextListener:监听器销毁");
2024-11-16 22:49:15
922
原创 自定义注解+拦截器+jwtFilter实现权限控制
GetterSUPER_ADMIN(1, "超级管理员"),SYSTEM_ADMIN(2, "系统管理员"),DOMESTIC_CONSUMER(3, "普通用户"),VISITOR(4, "游客"),UNKNOWN(999, "未知用户");
2024-11-15 00:26:32
483
原创 hutool-雪花算法 id 生成器
设置工作机器ID(workerId)和数据中心ID(datacenterId),这两个参数用于确保在分布式环境中生成的ID是唯一的。
2024-11-13 23:31:56
721
原创 SpringBoot--读取自定义配置文件
可选,高版本SpringBoot 已经可以自动注入 @Compont 注解的类。通过 @Resource 注解注入,然后就可以使用了。
2024-11-12 23:53:08
621
原创 Springboot -- 自定义异常,异常处理
GetterUN_LOGIN(101, "用户未登录"),USER_NOT_FOUND(102, "用户未找到"),USER_ALREADY_EXIST(103, "用户已存在"),FAIL_VALIDATE(201, "token 校验失败"),FAIL_ENCODE(202, "密码校验失败"),UNKNOWN_ERROR(901, "未知异常"),;@Slf4jlog.error("未捕获异常", exception);
2024-11-12 16:37:39
360
原创 SpringBoot统一返回格式
首先,我们定义一个通用的响应格式类。这个类将包含所有API响应的基本结构@Data// 成功响应return new ApiResponse<>(200, "请求成功", data);// 错误响应。
2024-11-11 22:12:17
281
原创 jjwt -- 单点登录
JwtUtil 工具类用于生成 token,校验 token,从 token 中解析数据SpringSecurity 配置类配置 凭证校验规则,接口拦截,可参考:https://editor.youkuaiyun.com/md/?articleId=143686996实现 UserDetail 接口重写 UserDetail 的构建方法,用于创建认证对象Jwt 过滤器校验受保护接口的 token控制器登录接口,使用 Spring Security 的规则校验凭证,校验成功生成 token 返回
2024-11-11 20:08:46
403
原创 ubuntu-下载安装maven
从Apache Maven官网下载Maven的Binary tar.gz archive文件,如apache-maven-3.5.2-bin.tar.gz。
2024-11-04 09:29:38
784
原创 安装 Ubuntu系统
访问UltraISO官方网站或可信赖的软件下载平台,选择适合您操作系统的版本进行下载。前往DiskGenius官方网站,下载最新版本的软件,确保选择适合您系统架构(32位或64位)的版本。访问Ubuntu官方网站或国内镜像源(如网易、阿里云等),选择您需要的Ubuntu版本,下载对应的ISO镜像文件。格式化移动硬盘打开DiskGenius,选中移动硬盘,进行分区并格式化为适当的文件系统,如NTFS或EXT4。将分区表类型转换为GUID模式,确保系统兼容性。
2024-11-04 09:28:12
877
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人