- 博客(157)
- 收藏
- 关注

原创 Deepseek的底层架构思维构成
DeepSeek通过MLA+MoE的联合优化DualPipe计算通信重叠3FS存储架构及动态资源调度成本突破:训练成本降至560万美元(GPT-4的1/10);效率跃升:推理速度提升2倍,显存占用降低90%;扩展性:支持千卡级集群线性扩展,加速比>90%。注意力压缩:MLA让长文本处理不再"爆内存"专家协作:MoE系统实现"术业有专攻"计算加速:DualPipe+混合精度打造"高速公路"记忆优化:3FS系统构建分级"记忆宫殿"智能调度:动态资源分配避免"堵车"
2025-03-04 17:14:44
1521
原创 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
325
原创 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
379
原创 SpringBoot使用MQTT协议简述
【摘要】 本文介绍Spring Boot与MQTT协议集成方法,通过Eclipse Paho实现硬件设备通信。主要步骤包括: 添加spring-integration-mqtt依赖 配置MQTT连接参数(broker地址、凭证等) 创建配置类设置客户端工厂和消息处理器 使用@MessagingGateway接口发送指令 通过MessageDrivenChannelAdapter订阅硬件消息 提供REST接口触发消息发送 关键特性包括异步通信、QoS等级设置和多主题订阅,适用于物联网硬件控制场景。
2025-05-29 18:39:54
680
原创 CSRF防范歪招
通过强制使用请求头携带Token并避免将其存入Cookie,可有效防御CSRF攻击。但需结合Token动态生成与验证、HTTPS加密、XSS防护等多层安全机制,才能构建全面的防护体系。
2025-05-13 16:06:35
372
原创 SpringSecurity当中的CSRF防范详解
文章摘要: CSRF(跨站请求伪造)攻击通过利用用户已登录的会话,诱导浏览器自动发送恶意请求,从而在用户不知情的情况下执行敏感操作。攻击成功的关键在于用户已登录受信任网站、网站未启用CSRF防护以及请求参数可预测。防御措施包括使用CSRF Token验证、设置SameSite Cookie属性以及检查Referer来源。Spring Security默认启用CSRF防护,通过生成和验证CSRF Token来阻断攻击。未启用CSRF防护可能导致数据泄露、资金损失等严重后果。开发者应根据业务场景选择合适的防护策
2025-05-13 15:50:05
962
原创 Spring Security与SaToken的对比
Spring Security与SaToken是两种流行的安全框架,分别适用于不同的应用场景。Spring Security作为企业级安全框架,功能全面,支持OAuth2、JWT等多种认证方式,适合复杂权限模型和高安全性要求的项目,但其学习曲线陡峭,配置复杂。SaToken则是一款轻量级权限认证框架,API简洁,开发效率高,适合中小型项目和前后端分离架构,但其功能深度和社区资源相对有限。选择时,若项目复杂度高且团队熟悉Spring生态,优先选择Spring Security;若项目周期紧张且需快速实现基础安
2025-05-13 15:23:45
959
原创 SpringBoot的单体和分布式的任务架构
在Spring Boot生态中,定时任务框架的选择需根据架构类型(单体或分布式)和功能需求进行权衡。对于单体架构,Spring Task和ScheduledExecutorService是轻量级且易用的选择,适合单机部署和简单任务逻辑。Spring Task通过注解快速配置任务,但缺乏动态修改和分布式协调能力;ScheduledExecutorService支持多线程并发,但不支持Cron表达式和任务持久化。对于分布式架构,Quartz、Elastic-Job和XXL-JOB提供了高可用、任务分片和故障转移
2025-05-13 14:09:19
1277
原创 Vue3的命名规范
本文详细介绍了 Vue 3 项目中文件夹和文件名的命名规范,结合官方推荐与行业最佳实践,旨在提升代码的可读性和维护性。主要内容包括: 项目基础结构命名:根目录使用 kebab-case,核心文件如 index.html、main.js 和 App.vue 采用固定名称。 src 目录结构:如 assets、components、views 等目录的命名规则及用途。 组件命名:使用 PascalCase,基础组件以 Base 开头,单例组件以 The 开头,父子组件命名需体现层级关系。 路由与状态管理命名:路
2025-05-12 14:35:52
945
原创 SpringBoot优雅参数检查
可通过组合String message() default "自定义错误消息";Class<?Class<?创建一个通用的响应类(如ResultVo@Data// 状态码(如 400 表示参数错误)// 错误描述// 错误详情(如具体字段的校验失败信息)// 快速生成失败响应。
2025-05-07 16:57:27
1038
原创 Vue3 项目中 Pinia 与 JavaScript 循环依赖问题深度解析
actions: {// ❌ cartStore 的方法});actions: {// ❌ 反向调用});
2025-04-28 17:12:51
1034
原创 JavaScript的JSON处理Map的弊端
和数组,可以在不修改现有存储函数的情况下安全使用。的内容,读取时也无法自动恢复为。专用的存取函数,隐藏转换逻辑。转换为数组,读取时再转回。解决方案(不修改存储函数)方法 1:存储时手动转换。会遇到的问题及解决方案。会导致数据丢失,因为。方法 2:封装工具函数。
2025-04-22 19:25:51
465
原创 IDEA创建Gradle项目然后删除报错解决方法
根据错误信息,你的项目目录中缺少Gradle构建必需的核心文件(如settings.gradle/build.gradle),且IDEA可能残留了Gradle的配置。
2025-04-22 11:35:10
507
原创 MySQL中高级语法
是 SQL 中实现灵活条件逻辑的核心工具,适用于数据转换、动态分组和复杂查询优化。合理选择简单 CASE 或搜索 CASE,并注意类型一致性与条件覆盖顺序,可显著提升代码可读性和执行效率。具体应用时,可结合索引优化与执行计划分析进一步调优。
2025-04-18 17:11:22
901
原创 Vue 3 中 ref和reactive的详细使用场景
在处理复杂对象结构时更直观。根据具体需求灵活选择,可显著提升代码可维护性。• 对数组进行索引操作时,建议使用变更方法(更适合管理独立值和需要完全替换的场景,而。• 需要灵活替换 →。
2025-04-16 14:46:18
460
原创 Uniapp使用onShow语法报before initialization
•根本原因:函数调用发生在定义之前,违反 JavaScript 作用域规则。•关键点:通过调整代码顺序或改用函数声明,确保函数在调用时已初始化。•最佳实践:结合 uni-app 生命周期特性(如onLoad用于初始化,onShow用于刷新)优化异步逻辑。
2025-04-10 21:02:34
550
原创 Uniapp当中的async/await的作用
•必须使用异步控制或是处理异步操作的唯一可靠方式。•删除的后果:数据未就绪时执行后续代码,导致逻辑错误和渲染异常。•优化建议:若需提升性能,可并行请求(如),但不可省略异步控制关键字。
2025-04-10 20:57:15
528
原创 HTTP请求当中若用户还没接收到返回数据就离线但服务器资源已经删除的情况
在 HTTP 请求中,若客户端在处理过程中断开连接,可能导致用户未收到数据而服务器已删除数据的风险。实现了无令牌的通用保障,平衡了系统复杂性和数据安全性,适用于大多数 HTTP 接口场景。通过以上设计,可有效解决「客户端断开导致数据丢失」的问题,平衡业务安全性和系统复杂度。:HTTP 是无状态协议,服务器无法感知客户端是否真正接收到了响应数据。将数据存储为临时文件,客户端通过一次性链接下载,确保删除前数据可达。:数据被删除后,客户端无法重新获取,导致业务中断。:删除前备份到归档存储,极端情况下可手动恢复。
2025-04-10 17:38:13
712
原创 SpringBoot论AOP当中后置操作当中用户请求是否已经被用户接收到
无论请求是否真正到达客户端,只要目标方法执行完成(包括正常返回或抛出异常),AOP 的后置通知(• 因为 AOP 的后置通知会在方法返回后、Spring 处理 HTTP 响应前执行。• 这意味着资源释放时,客户端可能尚未接收到响应数据(网络传输需要时间)应在方法结束后立即释放(通过 AOP 后置通知),无需等待客户端接收。• 使用异步回调机制(如 WebSocket 确认)• 但此时请求可能未被客户端完整接收(因异常中断)• 或设计幂等的资源释放逻辑(允许重复释放):方法结束即触发(包括异常)
2025-04-10 17:22:22
563
1
原创 SpringBoot使用Redisson时候进行Redis事务回滚
Redisson 在 Spring Boot 中支持事务回滚正确配置。使用注解标记事务方法。避免跨资源(如 Redis + 数据库)的本地事务误用,必要时升级为分布式事务方案。
2025-04-10 13:17:48
358
原创 MySQL分组的时候遇到ONLY_FULL_GROUP_BY报错和解决
MySQL 5.7 及以上版本默认启用了 严格模式。该模式强制要求:触发场景示例:若 未出现在 中且未使用聚合函数,MySQL 无法确定如何为同一 的不同 值返回结果,导致报错。方案一:添加缺失的字段到 GROUP BY将所有 SELECT 中的非聚合字段加入分组条件:适用场景:需精确按多字段分组,但可能导致分组维度增加,影响性能。方案二:使用聚合函数包裹非分组字段通过 、 或 处理字段: 会从分组中随机选择一个值,适用于无需精确值的场景。方案三:使用子查询或临时表将复杂逻辑拆分为子
2025-04-02 19:54:12
775
2
原创 写给新手的动态路由入门指南:用Vue3和SpringBoot实现权限控制
1.1 举个栗子 🌰假设你正在开发一个企业管理系统:•管理员可以访问:员工管理、财务统计等页面•普通员工只能访问:个人考勤、任务列表这时候就需要根据用户的身份动态决定他能看到哪些页面——这就是动态路由的核心作用!1.2 技术大白话•前端动态路由:用户登录后,前端根据权限动态加载不同的页面菜单•后端动态路由:后端根据用户角色控制接口访问权限。
2025-04-02 09:57:59
371
原创 MySQL使用CONCAT的业务情况
CONCAT是 SQL 中用于的函数,可以将多个字段、常量或表达式拼接成一个完整的字符串。它在模糊查询、动态生成文本等场景中非常实用,尤其是在需要动态拼接通配符(如)的情况下。将多个输入参数按顺序连接成一个字符串。自动将非字符串类型(如数字、日期)转换为字符串。常用于构建模糊查询(LIKE)的条件。
2025-04-01 10:52:36
586
原创 vue3里面使用Socketjs之后打包完访问的时候报socketStore-BmspPEpN.js:1 WebSocket connection to
其实就是得要SpringBoot的框架里面有个代理Socketjs的包里面就有上面的,代理到里面就可以了,我这里的主要的原因是我把打包的包放到了resource下面的静态资源文件夹里面但是还是要代理webrtcSocketConnect到SpringBoot里面就可以了。如果仍有问题,请提供 Nginx 和 Spring Boot 的日志片段。后端未启用 SockJS 支持,或未正确配置 WebSocket 端点。路径,或未处理 WebSocket 的协议升级请求。后,解压生成的 JAR 文件,检查路径。
2025-03-24 08:28:37
772
原创 Nginx代理本机的443到本机的8080端口
端口服务将通过 Nginx 的 HTTPS 反向代理暴露给局域网,同时解决跨域问题。)安装到设备的信任列表(方法见下文)。),并已安装 CA 证书(运行过。:允许外部设备访问 443 端口。:需将 mkcert 的根证书(路径与实际生成文件一致。• 解压到任意目录(如。通过以上步骤,你的本地。
2025-03-21 17:41:43
529
原创 删除 mkcert 根证书
设置 → 隐私与安全 → 清除历史记录 → 勾选。• 删除根证书后,所有由该 CA 签发的证书(如。生成的证书默认保存在用户目录下的。,只需重新安装并生成证书即可。通过以上步骤,可彻底清除本地。环境,恢复系统默认证书状态。
2025-03-21 17:00:41
564
原创 Let‘s Encrypt的工作原理
Let’s Encrypt 通过免费、自动化、开放三大原则,大幅降低了 HTTPS 的部署门槛。其核心流程依赖 ACME 协议完成域名验证和证书管理,配合自动化续期机制保障长期可用性。尽管缺乏企业级支持和高阶证书类型,但其对普通网站的覆盖能力已推动全球 HTTPS 普及率超过90%(截至 2023 年),成为互联网基础安全设施的重要组成部分。
2025-03-21 16:35:27
675
原创 WebRTC建立Description的通信的实际的原理
setLocalDescription(answer) 触发ICE收集。setLocalDescription(offer) 触发ICE收集。• 接收端在设置 answer 为本地描述后立即开始收集。• 发送端在设置 offer 为本地描述后立即开始收集。• 与对端 Answer 的到达时间无关。7. 发送answer + 已收集候选。发送answer (含已收集的候选)3. 发送offer + 已收集候选。发送offer (含已收集的候选)10. 持续发送后续候选。9. 持续发送后续候选。
2025-03-21 14:33:24
1255
原创 Vue的根路径为什么不能作为跳板跳转到其他页面
按此方案调整后,你的 URL 参数应该可以正常解析。如果仍有问题,请提供完整的。:如果是 SPA 应用,确保服务器配置正确,所有路径重定向到。如果将它作为路由组件挂载到根路径。,会导致路由系统嵌套混乱,形成。,或直接硬编码了其他组件(如。:路由参数无法正常传递,
2025-03-20 17:33:41
395
原创 synchronized 锁的释放机制
synchronized 锁的释放机制是通过 JVM 底层的 Monitor 锁模型和 计数器机制 实现的。以下是具体的释放逻辑和触发条件:正常执行结束当线程执行完 修饰的代码块或方法时,JVM 会自动调用 指令释放锁。• 同步代码块:通过 和 指令显式控制锁的获取与释放。• 同步方法:通过 标志隐式触发锁的获取和释放,方法结束时自动释放锁。异常退出如果在 代码块或方法中抛出未捕获的异常,JVM 会执行 指令释放锁。• 编译时会为同步代码块生成两个 指令:一个用于正常退出,另一个用
2025-03-20 13:36:11
864
原创 Vue的watchEffect的追踪逻辑
•自动触发的回调函数由依赖变更触发,但开发者需主动处理条件过滤、副作用清理和性能优化。•灵活性与风险:虽然省去了手动声明依赖的步骤,但过度依赖自动追踪可能导致不必要的计算(如追踪到非核心依赖)。•最佳实践:适合处理多依赖联动的副作用逻辑(如 UI 同步、日志记录),复杂场景建议结合watch使用。
2025-03-18 20:24:22
871
原创 vue3当中使用Pinia的store的组件化开发模式
通过以上步骤可实现:• ✅响应式状态管理:基于Composition API的Store声明• ✅跨组件共享:多组件间高效同步复杂状态• ✅可维护性:模块化Store设计与类型安全(天然支持TS)• ✅扩展性:通过插件实现持久化、日志等高级功能对比Vuex,Pinia的函数式Store语法更简洁,且与Vue3的Composition API深度契合,推荐作为Vue3项目的首选状态管理方案。
2025-03-18 15:58:50
1043
原创 Springboot是怎么保证WebSocket的链接对象是唯一的
TCP/IP层:四元组唯一性。WebSocket协议:独立握手与会话。Servlet容器:为每个连接创建原生会话实例。Spring抽象:封装容器会话为独立的对象。ID生成:通过UUID或唯一标识符确保逻辑唯一性。
2025-03-17 09:51:14
1001
原创 WebSocket的参数粗略解释
通过合理配置上述参数,可构建高效、安全的实时通信系统。:声明客户端支持的子协议列表(字符串或数组),服务端选择其一返回。服务端监听路径,用于指定 WebSocket 服务端点(如。)传输结构化数据(如 Protobuf),减少带宽占用。中选择支持的协议,返回给客户端以实现多逻辑分支处理。:检查端口是否开放、路径是否匹配、跨域策略是否允许。类型与负载格式是否一致,或检查掩码解码逻辑。),服务端可通过解析路径实现资源隔离。为加密协议(默认端口 443)。为明文协议(默认端口 80),支持路径参数动态匹配(如。
2025-03-14 16:35:46
905
原创 高内聚低耦合的通俗解释
将系统分为表现层、业务层、数据层,每层仅依赖下一层接口(如Controller→Service→DAO)。• 一个用户管理模块仅处理用户注册、登录、信息修改等核心功能,不涉及订单或商品逻辑。:每个类或函数仅完成一个任务,例如图书管理类只包含新增、删除、修改图书的方法。• 订单模块通过API接口调用用户模块的验证服务,而不是直接操作用户数据库。:如电商系统中,用户管理、商品管理、订单管理各自独立,避免交叉逻辑。:电池、电机、ABS系统由不同供应商独立开发,通过标准化接口集成。
2025-03-13 17:19:59
665
原创 SpringBoot当中当主线程使用异步处理其他流程的时候需要获取上下文会出现什么情况详解
当主线程(如 HTTP 请求线程)调用异步方法时,会立即将任务提交给线程池,主线程继续执行后续逻辑并直接返回响应,:主线程结束后,HTTP 请求上下文销毁,异步线程无法直接获取请求头。时,会立刻收到响应,而异步任务(如耗时 5 秒的操作)在后台执行。:异步方法抛出的异常默认不会传播到主线程,需通过。,但此线程池无限制创建新线程,可能导致资源耗尽。:异步任务提交后,主线程不等待直接响应客户端。显式指定线程池,避免默认线程池的缺陷。监控任务堆积情况,动态调整线程池参数。装饰任务,子线程可继承主线程的。
2025-03-13 16:33:40
694
原创 Uniapp当中的scroll-view滚动条不出现或者触底刷新事件不触发
检查容器高度是否有效设置审查全局 CSS 是否覆盖滚动条样式验证子元素布局是否符合滚动方向要求分平台调试并添加兼容性代码通过上述方案,可覆盖 90% 的滚动条异常场景。具体实现需结合业务逻辑调整(如动态高度计算或分页加载优化)。
2025-03-13 12:15:24
2067
1
原创 Uniapp的元素样式布局的优势
封装一个弹窗组件,自动处理iOS/Android的关闭按钮位置差异。:在微信小程序中自定义导航栏,而H5端使用默认导航栏样式。/* 关键:通过flex-grow拉伸容器高度 */:商品详情页需适配手机/平板/PC,且支持主题切换。/* H5使用原生导航栏,无需额外样式 *//* Android风格关闭按钮 *//* 微信自定义导航栏高度 *//* iOS风格关闭按钮 *//* 子元素垂直排列 *//* 使用CSS变量 *//* PC端横向排列 *//* 默认垂直排列 *//* 留出间距 */
2025-03-12 15:32:38
808
原创 MySQL Binlog的样式
Binlog 样式核心差异STATEMENT:记录 SQL 语句,简洁但依赖上下文。ROW:记录行变更,精确但日志量大。MIXED:动态选择,兼顾性能与一致性。查看工具:优先使用解码 ROW 格式,结合过滤参数提高可读性。实践建议:根据业务需求选择格式,ROW 适合强一致性场景,STATEMENT 适合批量操作,MIXED 作为折中方案。
2025-03-12 13:02:41
682
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人