自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(173)
  • 收藏
  • 关注

原创 RabbitMQ-消息可靠性-publisher-confirm持久化与手动ack

本文详解RabbitMQ消息丢失的三大环节:发布端、Broker、消费端,并给出可靠性三件套方案——开启publisher confirm与return,启用队列与消息持久化,消费端采用手动ack。结合实战代码与常见坑点,强调需配合幂等性设计,确保消息不丢不重。

2026-09-17 00:15:00 298

原创 JVM-元空间溢出-OutOfMemoryError-Metaspace排查与解决

JVM 元空间溢出(Metaspace OOM)常因类加载器泄漏导致类元数据无法卸载,而非堆内存不足。Metaspace 存储类信息,与堆分离,需通过 jstat -gc 及 Arthas 工具定位异常 ClassLoader。根本解决需控制动态类生成频率或复用加载器,避免频繁创建。调大 -XX:MaxMetaspaceSize 仅治标不治本。

2026-09-16 08:30:00 218

原创 Java-volatile可见性-为什么改了标志位线程却读不到

主线程修改boolean标志后,工作线程却读不到,根源是JMM中工作内存与主内存的可见性问题。未加volatile时,变量可能被缓存,导致修改不可见。volatile确保读写直接访问主内存,保障可见性与有序性,但不保证原子性。复合操作如i++仍需用AtomicInteger或锁。关键:共享标志位必须加volatile,复杂操作另用同步机制。

2026-09-15 08:30:00 95

原创 Java-ThreadLocal内存泄漏-线程池场景下的成因与正确用法

ThreadLocal在线程池中易引发内存泄漏,因key为弱引用、value为强引用,线程复用导致ThreadLocalMap长期持有值,无法被GC回收。根本原因在于未调用remove()。正确做法是使用try-finally确保每次用完必清理,避免异常时遗漏。排查时关注“内存缓慢上涨+老年代满+线程池场景”。核心原则:线程池中使用ThreadLocal,必须成对调用set与remove,且remove放finally块。

2026-09-14 08:30:00 376

原创 MySQL慢查询排查:EXPLAIN看type等于ALL全表扫描与索引失效

本文通过真实案例揭示MySQL索引失效的常见陷阱:对索引列进行函数运算(如DATE(create_time))、表达式计算、隐式类型转换或前导模糊匹配,均会导致EXPLAIN显示type=ALL全表扫描。核心解决方案是避免在索引列上做任何计算,日期查询应使用>= '起始时间' AND < '结束时间'的范围写法,确保索引命中。排查慢查询时,重点分析EXPLAIN的type(如range优于ALL)、key(是否用索引)和Extra(有无排序/临时表)。建议开启慢查询日志,结合工具精准定位问题。

2026-09-13 08:30:00 246

原创 HikariCP连接池耗尽:全站接口超时的根因与解决

<think>We need answer Chinese, ≤150字 abstract. Need summarize article. Must be concise. Need include root cause slow SQL occupying connections, HikariCP exhaustion, solution parameters fast fail. Ensure ≤150 characters? "字" means Chinese characters, likely

2026-09-12 08:30:00 107

原创 线程池OOM:为什么禁止用Executors创建线程池

<think>我们只需要根据内容生成摘要,不超过150字。注意摘要要涵盖核心要点:禁止用Executors,因为无界队列导致OOM;显式构造ThreadPoolExecutor,有界队列,合理拒绝策略,按CPU/IO密集估算线程数。语言简洁。</think>Executors.newFixedThreadPool 默认无界队列,任务堆积致内存溢出。应显式构造 ThreadPoolExecutor,使用有界队列(如 ArrayBlockingQueue)、合理拒绝策略(如 CallerRunsPolicy),

2026-09-11 08:30:00 213

原创 Spring@Async失效:同类自调用为何不生效及3个配置要点

<think>我们只需要根据内容生成摘要,不超过150字。摘要应涵盖核心问题、原因、解决方案和配置要点。注意语言简洁。</think>@Async 在同类自调用时失效,因 this 绕过代理。解决:拆独立 Bean 或注入代理对象。生产配置要点:自定义线程池防 OOM、处理异步异常、不依赖执行顺序。

2026-09-10 08:30:00 157

原创 Redis分布式锁:SETNX加锁的3个坑与正确姿势

<think>我们根据要求生成摘要,≤150字。内容核心:Redis分布式锁SETNX三个坑:解锁不保证、无超时、不校验归属;正确姿势用SET NX EX原子加锁,try-finally解锁,校验value;超时问题用Redisson看门狗。摘要需简洁。</think>基于SETNX实现Redis分布式锁存在三大坑:业务异常导致锁泄漏、锁无过期时间、解锁不校验归属。正确做法是使用SET NX EX原子加锁,在finally中校验后删除,并设置超时。对于业务超时,可采用Redisson看门狗自动续期,避免锁提

2026-09-09 08:30:00 433

原创 SpringCloudFeign调用超时与降级:别让一个下游挂掉拖垮整个服务

<think>我们需要根据要求,生成≤150字的文章摘要。内容来自关于Spring Cloud Feign调用超时与降级的文章。摘要要概述核心内容,包括问题、解决方案和原则。注意字数限制。我们用中文写。可以提炼:案例说明下游服务变慢导致上游超时,通过配置超时时间和降级策略解决,降级原则等。确保简明扼要。</think>本文以“查会员计划”案例说明Feign调用超时与降级的重要性:下游服务变慢会拖垮上游,需显式配置超时(连接1秒、读3秒),并通过FallbackFactory降级为默认值(如FREE),同时遵

2026-09-08 08:30:00 152

原创 JWT刷新Token策略:accessToken过期如何优雅续期

<think>我们根据要求,将全文内容压缩为不超过150字的摘要。注意摘要要涵盖核心:JWT过期问题、双token策略、实现方式及安全要点。</think>JWT鉴权面临有效期两难:过短频繁掉线,过长泄露风险高。推荐双token策略:短期access token(30分钟)保障安全,长期refresh token(7天)用于无感续期。前端收到401时自动调用刷新接口换取新token并重试请求。安全上,refresh token应存httpOnly cookie、支持一次性轮换与主动吊销。

2026-09-07 08:30:00 346

原创 Nginx反向代理504排查:proxy_read_timeout默认60秒的坑

<think>我们根据内容生成摘要,不超过150字。需要概括问题、原因、解法。</think>Nginx反代504常因proxy_read_timeout默认60秒早于后端响应。解法:长任务宜异步化(返回任务ID+轮询),而非硬调超时。需区分504(等不到响应)与502(连不上后端),并显式配置超时参数。</position>

2026-09-06 08:30:00 195

原创 MySQL死锁排查:两个事务互相等待的成因与解决方案

<think>我们只需要根据内容生成不超过150字的摘要。摘要是对全文核心内容的精炼概括。关注死锁成因、解决方案、定位工具。字数要严格控制。</think>两个并发事务因加锁顺序相反(下单锁stock等balance,退款锁balance等stock)形成循环等待触发死锁。用SHOW ENGINE INNODB STATUS定位后,最有效方案是统一加锁顺序;同时建议缩短事务、必要时重试,并确保update走索引防锁范围扩大。

2026-09-05 08:30:00 217

原创 Java基础:为什么重写equals必须重写hashCode

<think>我们根据用户要求,生成≤150字的文章摘要。内容来自文章,核心是说重写equals必须重写hashCode,否则HashMap找不到。摘要要简洁。</think>重写 equals 不重写 hashCode,会使相等的对象在 HashMap 中因落入不同桶而无法匹配。HashMap 先按 hashCode 定位桶,再用 equals 比较,二者缺一不可。正确做法是 equals 和 hashCode 使用同一批字段,并尽量设计不可变对象作为 key。这是 Java 集合框架的重要契约。

2026-09-04 08:30:00 212

原创 Spring事务失效:@Transactional自调用不生效的原因与4大失效场景

<think>我们需根据内容生成≤150字的文章摘要。内容主要讲@Transactional自调用失效原理和4大场景。摘要应简洁概括核心。字数限制150字。注意是“文章摘要”,需包括关键信息:同类自调用导致代理失效、4大场景及解决。我们写个摘要,约100字左右。</think>Spring 声明式事务依赖 AOP 动态代理;同类 this 自调用绕过代理,导致 @Transactional 静默失效。解决方案:拆分独立 Bean、注入自身代理或 AopContext。失效四大场景:同类自调用、非 publi

2026-09-03 08:30:00 809

原创 Redis缓存击穿:热点Key过期打崩数据库的3种解决方案

<think>我们根据内容生成不超过150字的摘要。内容讲Redis缓存击穿,热点key过期导致数据库被打,三种解决方案:互斥锁、逻辑过期、异步重建/永不过期,并延伸防穿透。摘要要简洁、覆盖核心。控制在150字内。</think>本文通过“今日推荐”热点key过期故障,区分缓存击穿、穿透、雪崩,重点给出3种解决方案:互斥锁、逻辑过期、永不过期+后台刷新,并顺带提到空值缓存和布隆过滤器防穿透,适合高并发缓存场景。

2026-09-02 21:25:45 513

原创 Spring-Bean生命周期-构造器访问Autowired字段为null

构造器执行时,@Autowired字段尚未注入,访问必为 null。推荐使用构造器注入,或把初始化逻辑放到。三个初始化回调(@PostConstruct / afterPropertiesSet / initMethod)都在注入之后。我是无羡(小剑),全栈偏后端的独立开发者。无羡 · 独立开发者作品集。

2026-09-01 08:30:00 405

原创 Redis-内存淘汰策略-key凭空消失

Redis 内存到maxmemory会按策略淘汰 key,根本不看 TTL。重要数据别和缓存混在一个实例里,核心数据用noeviction。缓存实例优先。我是无羡(小剑),全栈偏后端的独立开发者。无羡 · 独立开发者作品集。

2026-08-31 08:30:00 162

原创 MySQL-JOIN优化-NLJ与BNL的区别与实战

join 慢,先看EXPLAIN的Extra,出现就是被驱动表没走索引。优化方向:小表驱动大表 + 被驱动表 join 字段建索引。优化器选错顺序时,用强制。我是无羡(小剑),全栈偏后端的独立开发者。无羡 · 独立开发者作品集。

2026-08-30 08:30:00 211

原创 Java-泛型擦除-反射往List塞Integer

泛型是编译期约束,运行时擦除成Object。别用反射绕过泛型检查,否则炸弹会留到遍历时才引爆。泛型方法重载要注意擦除后的签名冲突。我是无羡(小剑),全栈偏后端的独立开发者。无羡 · 独立开发者作品集。

2026-08-29 21:09:00 248

原创 CountDownLatch与CyclicBarrier的区别

计数到 0 不能重置,循环复用要么每轮 new 一个,要么换。记得放finally,避免异常导致计数永远减不到 0。Semaphore用于限流,和前两者语义不同,别混用。我是无羡(小剑),全栈偏后端的独立开发者。无羡 · 独立开发者作品集。

2026-08-29 20:54:16 286

原创 节目编排拖素材定时间分区域数字标牌的心脏在这

本文介绍了数字标牌系统的核心模块——节目编排功能的设计与实现。系统通过节目表管理播放计划(一次性、每日、每周、自定义四种排期类型),使用关联表组织素材与节目的多对多关系,并支持多区域分屏显示。前端采用拖拽式节目编辑器,设备端通过API获取JSON格式的播放指令。文章重点解析了数据库设计、排期逻辑和前后端交互方案,指出节目编排作为连接硬件与内容的关键模块,是数字标牌系统最复杂的核心功能。

2026-08-08 08:30:00 178

原创 素材管理上传图片视频分类怎么让屏幕有内容可播

本文介绍了数字标牌系统的素材管理模块设计要点。核心采用单表存储素材信息(t_material表),包含文件类型、URL、缩略图等关键字段,其中图片默认播放10秒以统一调度逻辑。文件上传通过Spring Boot处理并配置Nginx实现动静分离,素材分类采用树形结构支持无限层级。列表页设计强调可视化操作,包含类型筛选、分类树、缩略图预览和批量操作功能。作者指出这是系统文件最密集的模块,后续将重点介绍节目编排功能。文章由全栈工程师无羡撰写,属于技术复盘类内容。(149字)

2026-08-07 08:30:00 10

原创 设备管理注册心跳远程指令屏幕是怎么活起来的

本文介绍了设备管理模块的设计与实现。作为系统核心模块,设备管理包含设备注册、状态监控、分组管理等功能。文章详细解析了设备表结构设计、心跳上报机制(5分钟无心跳判定离线)、远程指令流程(异步执行状态流转)以及RESTful接口设计(包含6个认证接口和3个公开接口)。作者采用极简分组策略,仅支持一级分组,并强调权限控制(viewer/operator/admin三级权限)。该模块为后续素材管理、节目下发等功能奠定基础,实现了设备全生命周期管理能力。

2026-08-06 08:30:00 173

原创 19个权限码三级角色我用一个注解搞定了整个系统的权限校验

本文介绍了数字标牌系统的用户认证与权限管理实现方案。针对三类用户角色(管理员、操作员、只读访客),作者采用简化RBAC模型,仅通过用户表的role字段管理权限。权限设计采用"模块:操作"格式(19个权限码),角色权限映射硬编码在Java中。系统使用JWT实现登录认证,将用户角色和权限列表嵌入Token。后端通过注解+AOP实现接口权限校验,前端根据权限动态控制UI元素。文章还提到默认账号初始化及精简的代码实现(仅4个核心文件),展现了独立开发者"够用就好"的务实设计理念。

2026-08-05 08:30:00 168

原创 建一个SpringBoot3项目骨架然后跑通第一个接口

本文介绍了如何搭建一个Spring Boot 3项目骨架,包括项目结构、关键依赖配置和第一个接口的实现。主要内容有: 标准项目结构设计,按模块划分controller、service等组件 关键依赖配置(MyBatis-Plus、Liquibase、JWT等) 分层配置文件管理,开发环境与生产环境分离 使用Liquibase进行数据库迁移管理 实现第一个健康检查接口验证项目运行 这是系列文章的第二篇,为后续开发奠定了基础,下篇将介绍JWT认证和权限系统的实现。

2026-08-04 08:30:00 188

原创 JWT过期用户还在操作我设计了一套刷新策略才解决

摘要: JWT过期机制常因忽视用户体验导致数据丢失问题。当用户长时间操作(如填写表单)时,Token过期直接跳转登录页会丢失未保存内容。解决方案采用双Token策略:短效Access Token(15分钟)搭配长效Refresh Token(7天),前端拦截401错误并静默刷新Token,用户无感知。同时引入刷新令牌轮转与黑名单机制,防止泄露风险。关键点:短效Token保安全,Refresh Token保体验,表单类页面建议额外增加自动保存功能。适用于C端或高交互场景,避免用户操作中断。(150字) 关键词

2026-08-03 08:30:00 203

原创 Nginx代理超时查了一天发现是upstream忘了配这3个参数

摘要: 本文分享了Nginx配置中常见的三个文件上传与代理问题及解决方案:1) client_max_body_size默认1MB限制导致413错误,需根据业务调整;2) 后端处理超时引发504,需配置proxy_read_timeout等超时参数;3) 大文件场景下缓冲策略选择,建议关闭proxy_buffering节省内存。作者通过实战案例总结出核心配置要点,并提供了文件服务的完整Nginx配置示例,强调合理设置请求体大小、超时时间和缓冲策略对性能优化的关键作用。(150字)

2026-08-02 11:31:55 215

原创 JDK装不上Maven配不对MySQL密码忘了搭个环境搞了一下午

这篇文章记录了搭建数字标牌CMS开发环境的过程。作者详细介绍了安装配置JDK 17(包括环境变量设置)、Maven(配置阿里云镜像加速)、MySQL 8.0(忘记密码的解决方案)以及Node.js + Vue CLI的完整步骤。文章总结了三个实用经验:1)Java/Maven必须手动配置环境变量;2)提前配置Maven镜像源;3)重要密码要记录备忘。最后预告下篇将开始构建Spring Boot 3项目骨架。作者以独立开发者视角,分享了全栈开发中环境搭建的实操经验。

2026-07-27 08:30:00 199

原创 怎么把管屏幕三个字拆成9张数据库表

文章摘要: 本文探讨了独立开发者如何拆解模糊需求,以“数字标牌管理系统”为例,将一句话需求分解为五层核心模块(设备管理、素材管理、节目编排、播放统计、用户权限),并转化为数据库表结构。作者提出两大原则:单一表职责、以查询场景驱动存储设计,最终形成9张表支撑系统功能。下篇将进入开发环境搭建环节。全文聚焦需求拆解方法论,适合开发者学习从抽象需求到具体落地的实践思路。 关键词: 需求拆解、数据库设计、独立开发、系统架构、模块化设计

2026-07-26 08:30:00 194

原创 Async和Transactional自调用不生效我查了一上午才发现是同一个坑

摘要: Spring的@Async、@Transactional等注解通过AOP代理实现,但自调用(方法内部调用同类带注解方法)会绕过代理,导致异步/事务失效。常见场景如this.sendNotification()中的this指向原始对象而非代理。解决方案: 注入自身代理(需@Lazy避免循环依赖); 拆分Service(推荐,职责分离); 通过ApplicationContext获取代理(不推荐)。 同类问题适用于@Transactional,核心原理是AOP代理机制限制。开发者需注意避免自调用,合理设

2026-07-25 08:30:00 144

原创 市面上已经有数字标牌系统了我凭什么再做一个

《为什么再造一个数字标牌CMS?轻量化开源方案的定位思考》 作者分析了三类现有方案:商业方案(功能冗余价格高)、开源方案(部署复杂)和小团队自研(封闭不共享),指出它们对中小商家不友好。基于此,作者提出自研Signage CMS的三大优势:1)极致轻量(单JAR包+9张表);2)全Java技术栈(Spring Boot/Vue3)便于自主迭代;3)MIT开源降低使用门槛。产品定位介于商业系统与重型开源方案之间,面向Java开发者、小商户等"用不起商业版也玩不转Docker"的群体。下文将展开需求拆解与架构设

2026-07-24 08:30:00 225

原创 缓存穿透把我数据库打挂了我加了个布隆过滤器扛住了

双十一期间,一个简单的主键查询SQL导致数据库CPU飙升至95%。排查发现是缓存穿透问题:大量不存在的数据请求绕过Redis直接压垮数据库。解决方案是引入布隆过滤器,通过哈希映射快速拦截无效请求,配合空值缓存机制防止误判。优化后接口响应时间从2.3秒降至12毫秒,数据库CPU降至15%。关键点包括:布隆过滤器高效拦截不存在key、空值缓存兜底、定期重建过滤器。该方案既提升性能又增强系统安全性,有效防御恶意遍历攻击。

2026-07-23 08:30:00 171

原创 猪八戒上有个数字标牌的项目我没接但我把它做出来了

无羡在公众号开启新系列《从零搭建完整项目》,首篇分享项目起源:7月初发现猪八戒网上有商家发布数字标牌CMS需求(预算6-12K/月),虽可接单但选择自主开发开源。他分析了外包局限(时间换金钱、无产品所有权)与独立开发优势(作品展示、吸引合作),用Spring Boot 3+Vue 3等技术三天完成Signage CMS(含设备/素材管理等模块),并开源上线。下期将详解需求拆解过程。无羡是独立开发者,专注AI与微服务,文末附个人技术资源链接。

2026-07-22 08:30:00 195

原创 我一个死锁排查了3小时最后发现是两条update的顺序问题

上线第三天,生产环境报警了。一个简单的审批接口,偶尔报。频率不高,一天两三次,但每次出现用户就操作失败,得重试。我查了 3 个小时,最后发现原因简单得离谱——。

2026-07-21 20:01:26 206

原创 ThreadLocal没remove内存慢慢涨最后OOM了

ThreadLocal内存泄漏问题复盘:线上服务因未调用remove()导致OOM,堆内存中积压数十万User对象。ThreadLocal数据实际存储在Thread的ThreadLocalMap中,当线程池复用线程时,若未清理Entry会导致value强引用无法被GC回收。正确做法是在finally块中调用remove()。另外需注意线程池复用导致脏数据问题,以及InheritableThreadLocal在线程池场景失效的问题,推荐使用TransmittableThreadLocal。遵循三大原则:set

2026-07-20 08:30:00 391

原创 缓存同时过期数据库差点挂了

摘要:文章分析了一起因缓存雪崩导致的服务崩溃事故。凌晨批量导入数据时重建索引导致缓存清空,大量请求穿透到数据库,慢查询打满连接池。文章区分了缓存穿透(查询不存在数据)、缓存击穿(热点 key 过期)和缓存雪崩(大量 key 同时失效)三种场景,并给出解决方案:布隆过滤器+空值缓存防穿透,分布式锁+热点永不过期防击穿,随机过期时间+异步刷新防雪崩。最后强调缓存设计需考虑随机过期、互斥锁和空值缓存等防护措施。

2026-07-19 08:30:00 175

原创 Transactional没生效我查了3个小时才发现是自己调了自己

摘要:Spring事务失效的常见陷阱与解决方案。文章通过一个订单服务案例,揭示@Transactional因类内自调用绕过AOP代理导致事务不生效的问题,提出四种解决方案:注入自身代理、拆分服务类、使用AopContext及事务上移。同时指出其他失效场景:非public方法、异常被吞、非RuntimeException未配置回滚。排查事务问题时,建议检查代理拦截情况。作者为全栈工程师无羡,专注AI与微服务架构。(150字)

2026-07-18 08:30:00 388

原创 Map.of传了个null本地没事一部署就炸了

摘要: 开发者在 CommonAuthFilter 中通过 Map.of() 返回 401 JSON 响应时,线上环境出现白屏问题,本地测试正常。排查发现是 Map.of() 对 null 值的严格限制导致 NPE(data 字段传了 null)。根因在于本地未触发该分支,而线上首次调用暴露问题。解决方案包括改用 HashMap(允许 null)或省略 null 字段。其他不可变集合(如 List.of())也有类似限制。关键点:Map.of() 简洁但不容忍 null,生产环境需谨慎测试边界条件。 (字数

2026-07-17 08:30:00 152

原创 iframe嵌了个页面白屏排查3小时发现是忘了传token

Console 管理后台用 iframe 嵌了审计日志页面。上线后点开——白屏。F12 一看,iframe 里的请求全返回 403。URL 直接在新标签页打开,正常。嵌在 iframe 里就 403。

2026-07-16 08:30:00 230

审批引擎系统-SpringBoot3+React通用审批引擎

Spring Boot 3 + React 19 通用审批引擎,零外部依赖,开箱即用。支持多级审批流转、模板管理、条件跳转、回调通知。 功能: - 待我审批 — 查看待审批申请,支持通过/驳回 - 我已审批 — 查看审批历史记录 - 我的申请 — 查看自己提交的申请,撤回或重新提交 - 所有申请 — 管理员查看全部审批 - 审批模板 — 管理审批流程模板,配置多级审批节点(角色/用户) - 审批详情 — 完整审批流转路径 + 操作记录图谱 - 条件跳转 — 节点支持条件判断,满足才触发 - 回调通知 — 审批完成后自动回调业务方接口(含重试机制) - Liquibase 自动建表(4张表),零配置启动 使用说明: 1. 创建 MySQL 数据库 approval_center 2. 修改 backend/application.yml 中数据库连接 3. cd backend && mvn clean package -DskipTests && java -jar target/approval-service-1.0.0.jar 4. cd frontend && npm install && npm run dev 5. 浏览器访问 http://localhost:5173 默认端口:后端 8095,前端 5173

2026-07-15

定时任务回调中心-SpringBoot3+React通用Quartz调度系统

基于 Spring Boot 3 + React 19 的通用定时任务回调中心。深度集成 Quartz,支持 HTTP 回调模式,带完整管理界面,零外部依赖,开箱即用。 功能: - 任务管理 — 创建/编辑/删除定时任务 - Quartz Cron 调度 — 精确的 Cron 表达式调度 - HTTP 回调 — 任务触发时回调指定 URL(支持 GET/POST + 自定义 Header + Body) - 任务控制 — 暂停/恢复/手动触发 - 分页列表 — 模糊搜索、状态筛选 - 执行统计 — 任务总数概览 - 防并发 — @DisallowConcurrentExecution 确保并行安全 - 自动注册 — 启动时自动注册已启用的任务 - Liquibase 自动建表,零配置启动 使用说明: 1. 创建 MySQL 数据库 task_center 2. 修改 backend/application.yml 中数据库连接 3. cd backend && mvn clean package -DskipTests && java -jar target/scheduler-service-1.0.0.jar 4. cd frontend && npm install && npm run dev 5. 浏览器访问 http://localhost:5173 默认端口:后端 8096,前端 5173

2026-07-15

在线考试系统-SpringBoot3+React全栈考试系统

基于 Spring Boot 3 + React 19 的全栈在线考试系统,零外部依赖,开箱即用。支持学生端在线考试、管理员端出题组卷、成绩统计分析,以及访客体验模式。 功能: - 学生端:学号登录、参加考试、查看成绩、修改密码 - 访客体验:无需登录即可体验试卷作答 - 题库管理:按学科/年级/题型/难度管理试题,支持 Excel 导入导出 - 试卷管理:创建、发布、下架、复制试卷 - 智能组卷:按难度比例自动选题组卷 - 成绩管理:自动阅卷、成绩查询、统计分析 - 考试监控:查看活跃考试会话、强制交卷 - 前端路由鉴权,管理员/学生双模式 使用说明: 1. 创建 MySQL 数据库 exam_center 2. 修改 exam-service/application.yml 中数据库连接 3. cd exam-service && mvn clean package -DskipTests && java -jar target/exam-service-1.0.0.jar 4. cd exam-web && npm install && npm run dev 5. 浏览器访问 http://localhost:5173 默认端口:后端 8080,前端 5173 默认账号:admin (管理员) / 学号测试 (学生)

2026-07-15

认证中心-SpringBoot3+Vue3独立认证中心

独立认证中心,支持多服务统一登录 / 注册 / Token 管理。Spring Boot 3 + Vue 3 + Element Plus 全栈,JWT Token 鉴权,开箱即用。 后端:Spring Boot 3.2 + MyBatis-Plus + MySQL + JWT 前端:Vue 3 + Vite + Element Plus + Axios 功能: 用户注册 / 登录 / 退出 JWT Token 签发与校验 Token 刷新(自动续期) 当前登录用户信息查询 RESTful API,统一响应格式 前端路由鉴权(登录拦截、未登录重定向) 个人中心(概览、编辑资料、修改密码) 使用说明: 创建 MySQL 数据库,导入 doc/sql/init.sql 修改后端 application-dev.yml 中的数据库连接配置 后端 mvn clean package,运行 java -jar target/auth-service.jar --spring.profiles.active=dev 前端 cd auth-web,npm install,npm run dev 浏览器访问 默认端口:后端 8092,前端 5173

2026-07-14

前端+React+ECharts数据可视化+6页暗色仪表盘大屏源码

内容概要:总共6页暗色数据仪表盘源码,纯前端实现,零后端依赖。包含 GitHub Trending 热榜、编程语言热度趋势、AI 大模型评分对比、Hacker News 热帖、NPM 包下载趋势、数据总览。 技术栈:React + Vite + TypeScript + ECharts 5 + TailwindCSS。 适用人群 前端开发者:学习 ECharts 高级图表配置和暗色 UI 设计 数据可视化从业者:参考仪表盘大屏布局方案 计算机专业学生:毕业设计、可视化作品集 使用场景及目标 个人作品集展示,暗色高级感提升专业度 学习 ECharts 雷达图、折线图、柱状图等图表类型的实战配置 npm run build 后部署到 Nginx,零运维成本 其他说明 附完整设计文档(配色方案、页面结构、数据源说明) 暗色仪表盘风格(#0f172a 深底 + 霓虹配色),与扁平亮色门户形成产品差异

2026-07-14

人工智能+DeepSeek+代码审查+AI自动审查Java代码工具源码

1、内容概要 基于 DeepSeek API 的 AI 代码审查工具源码,含 Spring Boot 3 后端 + React 前端。内置 70 条审查规则(阿里巴巴 Java 开发手册 55 条 + 自定义 15 条),粘贴代码一键审查。编辑器使用 VS Code 同款 Monaco Editor。 2、技术栈:Spring Boot 3 + React + Vite + Monaco Editor + DeepSeek API 3、适用人群 Java/React 全栈开发者:学习 AI API 集成实战 团队技术负责人:参考自动化代码审查方案 计算机专业学生:毕业设计、AI 应用实践 4、使用场景及目标 提交代码前自动审查,提前发现命名、注释、异常处理等问题 学习 DeepSeek API 的调用方式和企业级集成方案 作为 AI 应用案例,快速上手大模型开发 5、其他说明 源码中 API Key 已替换为 ***,使用前在 platform.deepseek.com 创建自己的 Key 填入 application.yml 即可 附完整设计文档(架构设计、规则体系、API 设计) 审查一次成本不到 ¥0.01

2026-07-14

Spring Boot 3 + Vue 3 前后端分离个人博客系统(源码+数据库)

一套前后端分离的个人博客系统,Vue 3 前端 + Spring Boot 3 后端。 与市面同类资源的区别: 1)市面多数是 Spring Boot + Thymeleaf + jQuery(单体、模板渲染) 2) 本项目是 Vue 3 + Spring Boot 3 前后端分离(RESTful API,前端独立部署) 功能: 前台:文章分页展示、分类筛选、文章详情、用户评论、JWT 登录 后台:工作台概览、文章发布/编辑/删除、分类管理、评论管理 技术栈: Vue 3 + Vite + shadcn/ui + TailwindCSS + Spring Boot 3.2 + MyBatis-Plus + MySQL + JWT 适用人群: Java/全栈初学者、毕业设计、学习前后端分离架构 快速启动: 创建 MySQL 数据库 → 改配置 → 启动后端 → npm install → npm run dev

2026-07-14

【数据库优化】基于MySQL执行计划的SQL性能调优:从索引设计到生产环境实战优化策略

内容概要:本文档系统讲解了MySQL 8.0环境下的SQL性能优化核心技术,重点围绕EXPLAIN执行计划解析、索引设计原则、窗口函数应用及实际业务场景展开。详细解读了EXPLAIN各字段含义,特别是type和Extra字段对查询性能的影响;深入剖析了联合索引的最左前缀法则、索引失效场景、覆盖索引与索引下推机制;并通过电商订单分析案例,展示了窗口函数在用户行为分析中的实战应用,如首单复购、留存率计算和RFM用户分层。最后提供SQL面试高频题与性能优化Checklist,强化实战能力。; 适合人群:具备一定SQL基础,从事后端开发、数据分析或数据库运维的中高级技术人员,尤其是工作1-3年希望提升SQL调优能力的研发人员。; 使用场景及目标:①掌握通过执行计划诊断慢查询的根本原因;②学会设计高效索引以避免全表扫描、文件排序和临时表;③熟练运用窗口函数解决复杂业务分析问题;④应对数据库相关面试和技术评审中的SQL优化挑战; 阅读建议:建议结合MySQL 8.0环境动手实践文档中所有SQL示例,尤其要反复演练EXPLAIN分析过程和索引优化策略,配合第六章的Checklist进行系统性排查训练,全面提升SQL实战与调优水平。

2026-07-14

Java后台+全栈开发+数字标牌CMS管理系统+源码

1、内容概要 一套完整的数字标牌(Signage)内容管理系统源码,含三个子项目: signage-service:Spring Boot 3 后端,RESTful API,JWT 认证,三级权限(admin/operator/viewer),19 个细粒度权限码,AOP 注解拦截,MySQL + Liquibase 自动建表。 signage-web:Vue 3 + Element Plus 管理后台,设备管理、节目编排、素材上传、定时播放,全功能可运行。 signage-simulator:纯 HTML/CSS/JS 播放模拟器,输入设备编号即可模拟终端播放效果。 2、适用人群 Java/Vue 全栈开发者:学习 Spring Boot 3 + Vue 3 完整项目架构 数字标牌系统集成商:直接二次开发或参考设计思路 计算机专业学生:毕业设计、课程设计参考 3、使用场景及目标 商场、医院、学校、企业大堂的数字标牌内容管理和播放 学习一个独立开发者从零搭建的全栈项目(架构设计、权限体系、前后端协作) 作为微服务项目模板,快速起新项目 4、其他说明 MIT 开源协议,可自由使用、修改、商用 Gitee 已开源 3 个仓库(wuxiannet/signage-service、signage-web、signage-simulator) 源码已排除 node_modules 和编译产物,解压后按 README 即可运行。 附设计文档:涵盖架构设计、权限体系设计(19 权限码 + 三级角色 + AOP拦截)、数据模型设计,方便快速理解项目结构。

2026-07-14

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

TA关注的人

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