logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Spring MVC 全流程深度解析:从请求到响应的暗中流程

摘要:本文深入解析SpringMVC处理HTTP请求的核心机制。通过"米其林餐厅"类比,阐述DispatcherServlet、HandlerMapping等组件分工。详细拆解请求7个关键步骤:从拦截请求到响应返回,重点说明Controller业务处理和视图解析过程。同时指出前后端分离架构下ViewResolver被HttpMessageConverter替代的变化,并提示Co

文章图片
#spring#mvc#java
java后端面试中经常涉及的JVM知识点

JVM核心知识点速览:内存模型分为线程私有区(虚拟机栈、本地方法栈、程序计数器)和共享区(堆、方法区)。垃圾回收采用可达性分析算法,主要算法包括标记-清除、标记-复制和标记-整理,常用收集器有CMS和G1。类加载采用双亲委派机制保障安全,流程包括加载、验证等7个阶段。OOM排查需生成堆转储文件,使用MAT等工具分析大对象和引用链。面试重点包括内存分区、GC原理、类加载机制及实际故障排查经验。

文章图片
#java#jvm#面试
登录方式:JWT(JSON Web Token), Session + Cookie 和 Opaque Token(不透明令牌/引用令牌)

本文通过游乐园的比喻形象解释了三种认证机制:Session+Cookie(记名手环)、OpaqueToken(寄存牌)和JWT(防伪门票)。从载体、存储位置、服务器压力等维度对比了三者差异,重点分析了JWT的流程和潜在问题:注销困难(建议黑名单或版本号机制)、信息过大(只存核心数据)、泄露风险(短效Token+HTTPS)。指出JWT不适合极度敏感系统、单体应用和带宽敏感场景,建议现有JWT项目检

#json#前端
MySQL 中 KEY 的使用

MySQL索引类型区别总结: KEY/INDEX是普通索引,仅加速查询,不保证唯一性; UNIQUE KEY是唯一索引,兼具加速查询和防止重复的功能; PRIMARY KEY是主键,具有唯一性、非空性,且自动包含索引功能。 使用建议: 业务唯一字段应使用UNIQUE KEY而非普通KEY; 主键字段无需额外建立索引; 联合索引遵循最左前缀原则,避免重复建立子集索引; 索引不是越多越好,重复索引会增

#oracle#数据库
MyBatis-Plus 分页查询@Param 注解

SpringBoot+MyBatis-Plus分页查询参数使用规范:对于多参数方法,业务参数必须添加@Param注解以便XML识别,而MyBatis-Plus的分页Page参数由框架自动处理无需注解。具体规则为:1)单参数可不加@Param;2)多参数中业务查询对象必须加@Param("别名"),否则XML无法识别参数名;3)MyBatis-Plus的分页Page参数作为特殊对

#mybatis
MyBatis-Plus 分页 Page 对象

MyBatis-Plus的Page<T>是标准分页对象,包含5个核心字段:current(当前页码)、size(每页条数)、records(当前页数据)、total(总记录数)和pages(总页数)。使用时只需创建Page对象并传入页码和页大小,框架会自动执行分页查询、计算总页数并封装结果。该分页方案简化了开发流程,无需手动编写count查询和分页计算,保持前后端交互字段统一,适用于各

#mybatis
Git 提交信息命名规范:feat、fix、refactor

本文介绍了Git提交信息的规范格式Conventional Commits,强调规范的提交记录对团队协作的重要性。提交信息应包含三部分:type(提交类型,如feat/fix/refactor等)、scope(影响模块)和subject(具体说明)。文章详细说明了各部分的书写规则,提供了常见模板和实际项目示例,并建议尽量使用scope提高可读性。规范的提交信息能清晰展示改动类型、影响范围和具体内容

#git
Redisson 和redis 实现延迟消息

Redis是内存数据库服务端,提供基础数据结构支持;Redisson是基于Redis的Java客户端框架,封装了分布式工具。Redis提供String、Hash、List等基础能力,而Redisson在其基础上实现了分布式锁、延迟队列等高级功能。Redisson延迟队列采用ZSet+List实现,通过后台线程扫描到期任务,比Redis原生Key过期监听更可靠。实际项目中应优先使用Redisson提

#redis#数据库#缓存
延时消息的几种实现方式及优缺点

本文对比分析了三种实现延时任务的方案:定时任务轮询、Redis Key过期监听和MQ延时队列(RabbitMQ/RocketMQ)。 定时任务轮询可靠性高但时效性差(分钟级),适合非核心场景;Redis Key过期监听实现简单但存在消息丢失风险,仅适用于允许丢消息的非核心业务;MQ延时队列兼具高可靠性和秒级精度,其中RocketMQ原生支持延时消息,是电商等核心业务的首选方案。 综合建议:非核心场

#java
git团队协作开发流程 git rebase与git merge

团队协作开发的核心流程是:1. 初始化克隆项目(git clone) → 2. 创建功能分支(git checkout -b)开发 → 3. 日常提交(git add/commit) → 4. 推送前同步主分支(git pull) → 5. 推送功能分支(git push) → 6. 发起Pull Request进行代码审查与合并。关键原则是隔离开发环境,避免直接修改主分支。常见问题包括代码冲突(

文章图片
#git
到底了