自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学习记录

个人学习的知识总结

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

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

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

2025-03-04 17:14:44 1901

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

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

2025-12-09 11:37:12 766

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

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

2025-11-07 19:46:36 935

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

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

2025-11-07 17:58:19 881

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

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

2025-11-07 17:43:19 1045

原创 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 616

原创 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 383

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

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

2025-09-23 15:47:45 1387

原创 小红书JS SDK签名过程

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

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

原创 高德MCPServer的工具列表

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

2025-09-05 10:51:46 748

原创 使用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 706

原创 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 1157

原创 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 1309

原创 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 904

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

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

2025-08-14 23:48:30 542

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

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

2025-07-27 04:16:49 890

原创 SpringBoot定时器

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

2025-06-24 16:34:39 1245

原创 SpringBoot内置的Web容器

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

2025-06-24 16:12:47 1289

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

本文介绍了挣值管理(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 832

原创 PERT 工程评估评审技术

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

2025-06-23 15:40:46 435

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

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

2025-06-21 21:59:36 1186

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

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

2025-06-16 14:40:42 381

原创 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 1930

原创 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 631

原创 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 1068

原创 SpringBoot使用MQTT协议简述

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

2025-05-29 18:39:54 956

原创 CSRF防范歪招

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

2025-05-13 16:06:35 449

原创 SpringSecurity当中的CSRF防范详解

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

2025-05-13 15:50:05 1197

原创 Spring Security与SaToken的对比

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

2025-05-13 15:23:45 1476

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

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

2025-05-13 14:09:19 1524

原创 Vue3的命名规范

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

2025-05-12 14:35:52 1999

原创 SpringBoot优雅参数检查

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

2025-05-07 16:57:27 1140

原创 Nginx匹配规则详细解析

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

2025-04-30 10:32:48 1448

原创 Vue3 项目中 Pinia 与 JavaScript 循环依赖问题深度解析

actions: {// ❌ cartStore 的方法});actions: {// ❌ 反向调用});

2025-04-28 17:12:51 1196

原创 JavaScript的JSON处理Map的弊端

和数组,可以在不修改现有存储函数的情况下安全使用。的内容,读取时也无法自动恢复为。专用的存取函数,隐藏转换逻辑。转换为数组,读取时再转回。解决方案(不修改存储函数)方法 1:存储时手动转换。会遇到的问题及解决方案。会导致数据丢失,因为。方法 2:封装工具函数。

2025-04-22 19:25:51 586

原创 IDEA创建Gradle项目然后删除报错解决方法

根据错误信息,你的项目目录中缺少Gradle构建必需的核心文件(如settings.gradle/build.gradle),且IDEA可能残留了Gradle的配置。

2025-04-22 11:35:10 1355

原创 MySQL中高级语法

是 SQL 中实现灵活条件逻辑的核心工具,适用于数据转换、动态分组和复杂查询优化。合理选择简单 CASE 或搜索 CASE,并注意类型一致性与条件覆盖顺序,可显著提升代码可读性和执行效率。具体应用时,可结合索引优化与执行计划分析进一步调优。

2025-04-18 17:11:22 1092

原创 Vue 3 中 ref和reactive的详细使用场景

在处理复杂对象结构时更直观。根据具体需求灵活选择,可显著提升代码可维护性。• 对数组进行索引操作时,建议使用变更方法(更适合管理独立值和需要完全替换的场景,而。• 需要灵活替换 →。

2025-04-16 14:46:18 766

原创 Uniapp使用onShow语法报before initialization

•根本原因:函数调用发生在定义之前,违反 JavaScript 作用域规则。•关键点:通过调整代码顺序或改用函数声明,确保函数在调用时已初始化。•最佳实践:结合 uni-app 生命周期特性(如onLoad用于初始化,onShow用于刷新)优化异步逻辑。

2025-04-10 21:02:34 737

原创 Uniapp当中的async/await的作用

•必须使用异步控制或是处理异步操作的唯一可靠方式。•删除的后果:数据未就绪时执行后续代码,导致逻辑错误和渲染异常。•优化建议:若需提升性能,可并行请求(如),但不可省略异步控制关键字。

2025-04-10 20:57:15 951

SpringBoot2+Vue3的鱼塘管理系统

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

2025-03-03

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

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

2024-11-08

空空如也

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

TA关注的人

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