自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学习记录

个人学习的知识总结

  • 博客(186)
  • 收藏
  • 关注

原创 Deepseek的底层架构思维构成

DeepSeek通过MLA+MoE的联合优化DualPipe计算通信重叠3FS存储架构及动态资源调度成本突破:训练成本降至560万美元(GPT-4的1/10);效率跃升:推理速度提升2倍,显存占用降低90%;扩展性:支持千卡级集群线性扩展,加速比>90%。注意力压缩:MLA让长文本处理不再"爆内存"专家协作:MoE系统实现"术业有专攻"计算加速:DualPipe+混合精度打造"高速公路"记忆优化:3FS系统构建分级"记忆宫殿"智能调度:动态资源分配避免"堵车"

2025-03-04 17:14:44 2000

原创 Spring 事务提交顺序深度解析:从踩坑到理解原理

本文深入解析了Spring事务的提交顺序原理。在没有@Transactional注解时,每个save()操作会立即独立提交数据库,存在数据不一致风险。添加事务注解后,所有操作会在方法正常返回时统一提交,实现原子性。文章重点解答了"日志打印但数据未提交"的常见疑问,指出日志输出不受事务控制。同时剖析了子服务事务传播问题,强调子服务必须添加@Transactional才能加入主事务,否则会独立提交。最后对比了不同场景下的提交方式和风险,总结出Spring事务的核心原理:提交发生在方法返回时,

2026-04-13 18:57:04 362

原创 破若依Springboot3连接Redisson

本文详细介绍了如何在若依(RuoYi) Spring Boot 3项目中正确集成Redisson客户端。文章首先分析了直接使用redisson-spring-boot-starter会导致的配置冲突问题,包括连接工厂替换、配置路径不匹配和Bean重复定义等。然后提供了完整的解决方案:仅引入Redisson核心库而非starter,手动创建RedissonConfig配置类,并通过@Value注解读取Redis配置。重点讲解了配置类中各注解的作用,特别是@Configuration确保单例创建、@Value读

2026-03-24 11:27:58 449

原创 Meilisearch核心搜索逻辑与主流向量搜索引擎(Elasticsearch、Milvus)深度对比

优点开箱即用,零配置获得高相关性结果。极低的学习曲线和运维成本。出色的拼写容错和多语言支持。资源消耗极低,适合边缘设备或小型服务器。缺点不支持原生向量搜索,无法满足AI驱动的语义搜索需求。分布式和高可用方案相对较新,不如ES成熟。功能相对“专注”,不适合复杂的分析场景。

2026-03-12 14:59:37 490

原创 企业微信自建应用合法获取客户群(外部群)的信息

摘要:调用企业微信externalcontact/groupchat/list接口返回48002错误的排查步骤:1)确认使用自建应用;2)在应用详情页申请"客户联系"权限(需管理员扫码);3)检查可见范围是否包含目标群主;4)确保使用当前应用的corpsecret获取token。常见问题包括权限未开通、可见范围不匹配或使用了错误的Secret。完成权限配置后重新调用接口即可解决。(149字)

2026-02-10 11:17:00 1053

原创 RocketMQ 5.x + Spring Boot 发送消息失败全解析

本文详细解析了RocketMQ 5.x与Spring Boot集成时消息发送失败的常见问题及解决方案。主要内容包括:1) RocketMQ 5.x改用gRPC协议通信,必须暴露8081/8080端口;2) Producer默认Topic与代码显式Topic混用导致路由查询失败;3) Topic必须提前创建且不能依赖控制台显示。给出了两种配置方案(推荐删除Producer默认Topic)和完整的上线检查清单。文章指出RocketMQ 5.x的核心差异在于gRPC协议、非自动创建Topic和路由查询机制,理解这

2026-02-09 17:23:45 749

原创 RocketMQ Docker 部署实战:解决 RemotingConnectException: connect to 0.0.0.0:10911 failed

- 前言 - 介绍问题的背景和影响- 问题描述 - 详细的错误现象和影响范围- 问题根本原因分析 - 深入分析 Docker 网络架构和 0.0.0.0 的问题- 解决方案 - 提供三种不同的解决方案- 完整的 Docker Compose 配置 - 生产级别的配置示例- 验证步骤 - 详细的验证清单和预期输出- 常见问题排查 - 4 个常见问题及解决方案- 最佳实践 - 5 个关键的最佳实践建议- 总结 - 核心解决方案和关键要点

2026-02-08 18:07:56 843

原创 SnailJob发布任务类型详解

本文详细介绍了SnailJob分布式调度框架的五种任务类型:集群任务确保单节点执行避免重复;广播任务在所有节点同步执行;固定分片任务将大任务拆分为并行小任务;Map任务支持动态分片;MapReduce任务包含Map和Reduce阶段实现结果汇总。每种类型均配有适用场景和代码示例,帮助开发者根据业务需求选择合适方式,提高系统性能和资源利用率。

2026-02-07 15:00:41 507

原创 SpringAI1.1.0版本当中本地工具注入到ChatClient无法获取回调的问题

本文详细解析了Spring AI工具类开发中依赖注入与工具回调的关键问题。核心要点包括:1) 工具类必须通过@Service等注解注册为Spring Bean,否则依赖注入失效;2) 应通过构造函数注入获取工具实例,避免手动实例化;3) 正确配置@Tool注解实现工具方法,并确保回调功能正常工作。文章提供了完整的代码示例,展示了如何正确实现Spring管理的工具类、控制器配置以及1.1.0版本的工具回调机制,帮助开发者避免常见的NullPointerException等问题。

2025-12-09 11:37:12 882

原创 Spring三级缓存通俗易懂讲解

摘要: Spring的三级缓存机制通过三个不同阶段的缓存容器解决循环依赖问题:一级缓存存放完整Bean(成品房钥匙箱),二级缓存存放半成品Bean(半成品房钥匙箱),三级缓存存放Bean工厂(施工队联系方式箱)。当A和B两个Bean相互依赖时,Spring会先创建半成品Bean存入二级缓存,提供给另一个Bean使用,待双方都完成初始化后再存入一级缓存。这种机制确保了在循环依赖场景下,Bean能被正确创建和注入,同时保持单例特性。

2025-11-07 19:46:36 978

原创 JVM组件协同工作机制详解

JVM组件协同工作机制详解 本文系统解析了Java虚拟机各核心组件的协同工作流程。JVM主要包含类加载器子系统、运行时数据区和执行引擎三大模块,它们通过精细协作完成Java程序执行: 类加载器与方法区协作加载类信息,堆内存准备对象存储空间 程序执行时栈与堆密切配合,栈帧引用堆对象,方法区提供字节码 执行引擎采用解释器与JIT编译器分层协作,配合垃圾回收器管理内存 多线程环境下通过程序计数器和本地方法栈实现并发控制 完整的协作链从类加载开始,经对象创建、方法调用到内存回收,各组件各司其职又紧密配合,共同保证J

2025-11-07 17:58:19 927

原创 JVM架构与执行流程详解

本文详细解析了Java虚拟机(JVM)的架构和执行流程。JVM主要由类加载器子系统、运行时数据区、执行引擎和本地方法接口组成。类加载器采用双亲委派模型加载类文件,运行时数据区包括方法区、堆、Java栈等内存区域。执行引擎通过解释器和JIT编译器执行字节码,垃圾回收器管理内存回收。Java程序执行流程分为编写编译、类加载和运行时执行三个阶段,涉及类加载验证、初始化、方法调用及对象创建等关键过程。文章全面介绍了JVM各组件功能及Java程序在JVM中的完整生命周期。

2025-11-07 17:43:19 1088

原创 JVM新生代转老年代机制详解

JVM新生代转老年代机制 JVM内存管理中,对象从新生代晋升到老年代主要有四种条件:1) 对象年龄达到阈值(默认15);2) 动态年龄判断(Survivor区中相同年龄对象总和超半区);3) 大对象直接分配;4) Survivor区空间不足。 完整流程包括:1) 源代码编写;2) 编译为字节码;3) JVM启动加载类;4) 运行时对象首先分配在Eden区,经历多次Minor GC后符合条件晋升老年代。通过配置JVM参数可优化晋升策略和内存管理。

2025-11-07 17:42:12 695

原创 STM32的DH11温湿度模块和LED灯的综合实训

该代码实现了一个基于ESP32的智能LED控制系统,通过DHT11传感器检测环境温度,根据温度范围切换4种LED显示模式:流水灯(25℃以下)、同步闪烁(25-27℃)、随机亮灭(27-29℃)和快速闪烁(29℃以上)。系统初始化LED引脚并设置GPIO模式,通过switch-case结构实现不同温度阈值下的LED控制逻辑,包含延时功能保证显示效果。DHT11传感器采用18ms起始信号和40位数据读取,实现温湿度检测功能,为LED模式切换提供数据依据。

2025-10-31 12:08:30 414

原创 SpringBoot流式返回完整指南:从入门到精通

SpringBoot流式返回技术指南摘要 本文全面介绍SpringBoot中流式返回的实现方法与应用场景。流式返回(Streaming Response)支持服务器持续向客户端发送数据,适用于实时数据、大文件处理和消息推送等场景。SpringBoot通过WebFlux和Reactive Streams提供强大支持,核心类包括Flux、Mono和ServerSentEvent等。文章详细展示了文本流、JSON数据流、SSE推送等基础实现,以及数据库查询流、大文件下载和消息队列集成等高级应用。关键优势包括实时性

2025-09-23 15:47:45 1578

原创 小红书JS SDK签名过程

本文介绍了小红书JS SDK接入的三步签名流程:1)后端使用appSecret生成签名换取临时access_token;2)后端用access_token二次签名生成前端所需参数;3)前端携带签名参数初始化SDK。整个过程通过两次签名验证,既保护了核心密钥安全,又确保了接口调用的合法性,实现了SDK的安全接入。核心在于后端保管敏感信息,仅传递必要参数给前端。

2025-09-11 01:54:22 928 1

原创 高德MCPServer的工具列表

本文介绍了高德地图API的多种功能,包括骑行、驾车、步行和公共交通路径规划(分别支持500km、100km等不同距离范围),支持考虑天桥、单行线等路况因素;距离测量功能可计算驾车、步行和直线距离;地理编码服务可将地址与坐标相互转换;IP定位功能;以及行程规划地图展示功能,可生成高德地图URI链接直接打开。各API均需传入经纬度坐标(格式为"经度,纬度"),部分功能需额外参数如城市信息、距离测量类型等。

2025-09-05 10:51:46 825

原创 使用spring-boot-starter-validation常用注释优雅判断类型

Spring Boot Validation 注解摘要 Spring Boot Validation 基于 JSR 380 规范,提供强大的数据校验能力。核心注解包括: 空值校验:@NotNull、@NotBlank、@NotEmpty 长度校验:@Size 控制字符串/集合长度 数值范围:@Min/@Max、@DecimalMin/@DecimalMax 格式校验:@Email、@Pattern(正则) 布尔值:@AssertTrue/False 日期时间:@Past/Present/Future 嵌套校

2025-09-03 17:39:38 735

原创 Spring Boot HTTP状态码详解

本文全面介绍了Spring Boot中的HTTP状态码使用,从信息响应(100-199)到服务器错误(500-599)。重点解析了常用状态码如200(OK)、201(Created)、400(Bad Request)、404(Not Found)等的适用场景和Spring Boot实现方式,并提供了ResponseEntity精确控制状态码、统一错误响应格式等最佳实践。文章还包含状态码选择指南和常见问题解答,帮助开发者构建符合RESTful规范的API。

2025-09-03 15:30:53 1273

原创 Spring Boot 实现 SSE (Server-Sent Events) 完整指南

Spring Boot实现SSE推送技术指南 本文介绍了在Spring Boot中实现Server-Sent Events(SSE)技术的完整方案。主要内容包括基础实现、鉴权支持和高级功能三部分: 基础实现:通过创建SseEmitter控制器和前端监听器,实现服务器向客户端推送事件的基本功能,包含事件构建、发送和超时处理等核心逻辑。 鉴权支持:展示了如何通过Token验证机制保护SSE端点,包括服务端Token验证和前端鉴权信息发送的实现。 高级功能:提供了广播事件给多个客户端的实现方法,通过维护客户端列表

2025-08-20 04:05:50 1475

原创 Maven打包部署详解

Maven生命周期核心解析与Spring Boot实战摘要 Maven通过预定义的三大生命周期(clean/default/site)实现标准化构建流程,其中default生命周期包含编译、测试、打包等核心阶段。关键要点: 阶段触发机制:执行某阶段会自动触发其前置阶段(如install会先执行compile→test→package) Spring Boot特化:package阶段配合spring-boot-maven-plugin会生成可执行Fat Jar 多模块协作:必须使用install将包安装到本地

2025-08-17 01:19:55 949

原创 高效TypeScript开发:VSCode终极配置指南

这篇教程分享了VSCode中TypeScript开发的专属效率配置方案,通过修改settings.json文件实现。主要包含四大优化方向:引用追踪增强(显示代码引用计数)、智能提示优化(自动补全函数调用和导入)、编辑体验提升(移动文件自动更新导入路径)和性能调优(增加TS服务器内存)。文章提供了详细的配置代码示例,并重点解析了几个核心功能的效果和使用场景,如非相对路径优先导入策略。最后给出一个完整的配置模板,并提示配置需要在包含tsconfig.json的项目中生效,建议配置后重启TS服务器。这些设置能显著

2025-08-14 23:48:30 657

原创 uniapp + uview-plus 微信小程序二维码生成和保存完整解决方案

uniapp + uview-plus 微信小程序二维码生成保存方案 本文提供了一套完整的微信小程序二维码生成与保存解决方案,基于uniapp框架和uview-plus组件库,重点解决了Canvas兼容性、权限处理等常见问题。方案采用纯API实现,核心思路是: 使用u-qrcode组件显示二维码 通过第三方API重新生成相同内容的二维码 下载并保存到相册 关键实现包括: 动态监听二维码内容变化 完善的权限检查流程(微信小程序) 多API服务备选机制 完整的错误处理和用户反馈 该方案兼容Vue 3 Compo

2025-07-27 04:16:49 1049

原创 SpringBoot定时器

摘要:Spring Boot定时任务可通过@Scheduled和@EnableScheduling实现,支持6种时间配置方式:Cron表达式(最灵活)、固定速率(fixedRate)、固定延迟(fixedDelay)、初始延迟(initialDelay)、时间单位和属性文件动态配置。高级技巧包括线程池调优、异常处理和分布式锁。注意任务阻塞、集群重复执行等问题,可通过Actuator监控任务状态。典型应用场景如定时备份、业务时段任务等,建议优先使用Cron表达式并做好异常管理以保证稳定性。(149字)

2025-06-24 16:34:39 1309

原创 SpringBoot内置的Web容器

Spring Boot支持多种嵌入式容器,包括默认的Tomcat以及Jetty、Undertow和Netty。Tomcat成熟稳定,适合传统Web应用;Jetty资源占用低,适合嵌入式系统;Undertow性能优异,适合高并发场景;Netty专为响应式编程设计。切换容器只需排除Tomcat依赖并引入目标容器starter,同时可根据需求配置相关参数。选择容器时需考虑应用场景和性能需求,如传统应用选Tomcat,高并发选Undertow,响应式则用Netty。这种灵活性使开发者能优化应用性能和资源效率。

2025-06-24 16:12:47 1328

原创 软件项目管理挣值计算

本文介绍了挣值管理(EVM)的核心指标及其应用。主要公式包括:挣值(EV)、计划值(PV)、实际成本(AC),以及由它们衍生的进度偏差(SV)、成本偏差(CV)、进度绩效指数(SPI)和成本绩效指数(CPI)。EV表示已完成工作的预算成本,PV是计划完成工作的预算成本,AC是实际花费成本。通过比较EV与PV判断进度绩效,比较EV与AC判断成本绩效。当SV>0或SPI>1表示进度超前,CV>0或CPI>1表示成本节约。这些指标为项目管理提供了量化的绩效评估方法。

2025-06-23 19:18:51 946

原创 PERT 工程评估评审技术

PERT技术通过三点估算(乐观/最可能/悲观时间)计算项目工期概率。以图书馆系统开发为例,计算4个顺序活动的期望工期与方差,得出总工期期望51天、标准差3.74天。分析显示:54天完工概率79%,47天仅14.23%。PERT优势在于量化风险(如设计编码方差最高)、科学设定工期,适用于研发类不确定性高的项目。核心步骤包括三点估算、总方差计算和正态分布概率分析,帮助管理者合理承诺交付期限。

2025-06-23 15:40:46 524

原创 SpringAI1.0下的MCP的异步请求和同步请求的区别

摘要:本文对比了同步与异步通信模型在MCP客户端中的实现差异。同步调用(McpSyncClient)采用阻塞式请求,简单直观但性能受限;异步调用(假设McpAsyncClient)使用非阻塞模式,资源利用率高但编程复杂。文章通过电话/短信的比喻说明两者区别,并列出对比表格,建议根据任务耗时和并发需求选择合适模型:快速响应场景可用同步,高并发或I/O密集型任务更适合异步。代码示例展示了同步客户端的构建过程。

2025-06-21 21:59:36 1288

原创 SpringAI1.0的MCPServer自动暴露Tool

摘要:该代码实现了一个自动工具注册器(ToolAutoRegistrar),通过@Configuration标记为配置类。它会扫描所有带有@Service注解的Bean,并筛选出含有@Tool注解方法的Bean,然后构建一个工具回调提供者(ToolCallbackProvider)。这种设计实现了基于注解的自动化工具方法注册,简化了手工配置过程,适用于需要动态收集服务类中特定工具方法的场景。

2025-06-16 14:40:42 435

原创 PDM网络图上的ES、EF、LS、LF是干嘛的怎么计算下一个节点的数值

摘要: PDM网络图通过计算ES(最早开始)、EF(最早完成)、LS(最晚开始)、LF(最晚完成)四大时间参数管理项目进度。正向推导ES/EF确定最短工期(如案例总工期17天),反向计算LS/LF识别关键路径(TF=0的活动链,如A→B→E→F)。非关键活动(如C、D)的浮动时间(TF=4天)可用于资源优化。进度压缩需优先处理关键路径。需求管理与PDM网络图互补,前者定义活动,后者分析时间逻辑。(148字)

2025-06-13 16:04:53 2284

原创 Springboot3+的id字符串转化问题

摘要:本文介绍在Spring Boot 3+项目中实现Long/BigInteger ID自动转为JSON字符串的后端解决方案。通过配置全局ObjectMapper注册ToStringSerializer,实现所有Long类型自动序列化为字符串,避免JS精度问题。方案包含:1)添加必要依赖;2)配置全局Jackson序列化规则;3)可选精准控制特定字段;4)同步OpenAPI文档类型。文末提供测试示例验证转换效果,确保前后端交互时ID以字符串形式传输,同时保持Swagger文档准确性。该方案无需修改实体类,

2025-06-11 11:27:02 671

原创 SpringBoot配置最新的AI版本加入Maven的配置方式

如果您想要让这些仓库配置对所有 Maven 项目生效(而不是在每个项目的 pom.xml 中重复配置),应该将它们添加到 Maven 的全局配置文件 settings.xml 中。优先使用 settings.xml:对于团队开发或公司环境,统一在 settings.xml 配置更高效。将仓库配置添加到 Maven 的 settings.xml 文件(推荐做法)Maven 安装目录: $M2_HOME/conf/settings.xml。步骤 1: 找到 Maven 的 settings.xml 文件位置。

2025-06-09 19:37:29 1241

原创 SpringBoot使用MQTT协议简述

【摘要】 本文介绍Spring Boot与MQTT协议集成方法,通过Eclipse Paho实现硬件设备通信。主要步骤包括: 添加spring-integration-mqtt依赖 配置MQTT连接参数(broker地址、凭证等) 创建配置类设置客户端工厂和消息处理器 使用@MessagingGateway接口发送指令 通过MessageDrivenChannelAdapter订阅硬件消息 提供REST接口触发消息发送 关键特性包括异步通信、QoS等级设置和多主题订阅,适用于物联网硬件控制场景。

2025-05-29 18:39:54 996

原创 CSRF防范歪招

通过强制使用请求头携带Token并避免将其存入Cookie,可有效防御CSRF攻击。但需结合Token动态生成与验证、HTTPS加密、XSS防护等多层安全机制,才能构建全面的防护体系。

2025-05-13 16:06:35 496

原创 SpringSecurity当中的CSRF防范详解

文章摘要: CSRF(跨站请求伪造)攻击通过利用用户已登录的会话,诱导浏览器自动发送恶意请求,从而在用户不知情的情况下执行敏感操作。攻击成功的关键在于用户已登录受信任网站、网站未启用CSRF防护以及请求参数可预测。防御措施包括使用CSRF Token验证、设置SameSite Cookie属性以及检查Referer来源。Spring Security默认启用CSRF防护,通过生成和验证CSRF Token来阻断攻击。未启用CSRF防护可能导致数据泄露、资金损失等严重后果。开发者应根据业务场景选择合适的防护策

2025-05-13 15:50:05 1238

原创 Spring Security与SaToken的对比

Spring Security与SaToken是两种流行的安全框架,分别适用于不同的应用场景。Spring Security作为企业级安全框架,功能全面,支持OAuth2、JWT等多种认证方式,适合复杂权限模型和高安全性要求的项目,但其学习曲线陡峭,配置复杂。SaToken则是一款轻量级权限认证框架,API简洁,开发效率高,适合中小型项目和前后端分离架构,但其功能深度和社区资源相对有限。选择时,若项目复杂度高且团队熟悉Spring生态,优先选择Spring Security;若项目周期紧张且需快速实现基础安

2025-05-13 15:23:45 1597

原创 SpringBoot的单体和分布式的任务架构

在Spring Boot生态中,定时任务框架的选择需根据架构类型(单体或分布式)和功能需求进行权衡。对于单体架构,Spring Task和ScheduledExecutorService是轻量级且易用的选择,适合单机部署和简单任务逻辑。Spring Task通过注解快速配置任务,但缺乏动态修改和分布式协调能力;ScheduledExecutorService支持多线程并发,但不支持Cron表达式和任务持久化。对于分布式架构,Quartz、Elastic-Job和XXL-JOB提供了高可用、任务分片和故障转移

2025-05-13 14:09:19 1567

原创 Vue3的命名规范

本文详细介绍了 Vue 3 项目中文件夹和文件名的命名规范,结合官方推荐与行业最佳实践,旨在提升代码的可读性和维护性。主要内容包括: 项目基础结构命名:根目录使用 kebab-case,核心文件如 index.html、main.js 和 App.vue 采用固定名称。 src 目录结构:如 assets、components、views 等目录的命名规则及用途。 组件命名:使用 PascalCase,基础组件以 Base 开头,单例组件以 The 开头,父子组件命名需体现层级关系。 路由与状态管理命名:路

2025-05-12 14:35:52 2195

原创 SpringBoot优雅参数检查

可通过组合String message() default "自定义错误消息";Class<?Class<?创建一个通用的响应类(如ResultVo@Data// 状态码(如 400 表示参数错误)// 错误描述// 错误详情(如具体字段的校验失败信息)// 快速生成失败响应。

2025-05-07 16:57:27 1169

原创 Nginx匹配规则详细解析

精确匹配优先减少正则使用合理排序 location明确处理尾部斜杠添加访问控制。

2025-04-30 10:32:48 1530

SpringBoot2+Vue3的鱼塘管理系统

可以运行的项目资源,毕设级别的。

2025-03-03

IDEA启动JavaEE启动控制台乱码或者jsp等页面乱码的Tomcat

调试好的不会报错的Tomcat8文件

2024-11-08

空空如也

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

TA关注的人

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