Development Changelog

记录从基础实验到复杂系统的每一次代码提交与 Bug 修复

Latest v2.2.0-Perf

v2.2.0

Just Now
CDN 缓存命中率与带宽优化

解决了源站带宽过小导致图片加载缓慢的问题,通过 HTTP 头控制 CDN 缓存行为。

  • CACHE重构 WebConfig,为静态资源 (/uploads/**) 添加 Cache-Control: max-age=604800, public 响应头,强制 CDN 缓存 7 天。
  • GZIPapplication.properties 中开启 Tomcat Gzip 压缩,CSS/JS 文件体积减少 70%。
  • CDN配置云端 CDN 规则,开启“参数忽略”与“HTTPS 强制跳转”,提升首屏加载速度 (FCP)。

v2.1.0

2025-12-22
CDN 适配与混合内容修复

解决了生产环境接入 CDN 后,由于 SSL 卸载导致的静态资源加载失败问题。

Issue: Mixed Content: The page at 'https://...' was loaded over HTTPS, but requested an insecure stylesheet 'http://...'.
  • HOTFIXlayout.html 中添加 CSP 策略 upgrade-insecure-requests,强制浏览器升级 HTTP 请求。
  • OPS排查 Linux 环境下文件名大小写敏感导致的 404 问题,统一规范资源引用路径。
  • CDN完成静态资源 (CSS/JS/Images) 的 CDN 加速配置,大幅提升首屏加载速度。

v2.0.0 - Cloud Deployment

2025-12-21
生产环境发布 (Production)

完成从本地 Windows 开发环境到 Linux 云服务器的完整迁移与部署。

  • ENV云服务器环境搭建:JDK 17 + MySQL 8.0 + Redis Server。
  • DB执行数据迁移,导入 exp8_final_data.sql 至云端数据库,保留了 400+ 模拟用户数据。
  • DEPLOY使用 nohup java -jar 命令配置后台运行,并解决 Linux 环境下文件上传路径权限问题。
  • NET配置安全组防火墙,开放 8088 端口,配合OpenResty进行反向代理,实现公网访问。

v1.6.0

2025-12-20 23:45
文档化与最终交付
  • DOC集成 DevLog (本页面) 与 TechDoc (技术文档),实现系统自述。
  • UI页脚增加文档入口,完善系统版权信息。

v1.5.2

2025-12-20 23:15
UI 细节回滚与优化

修复了在之前版本重构中导致管理员操作入口丢失的问题。

  • REGRESSION修复活动列表中管理员 操作齿轮消失 的问题。
  • UX精简下拉菜单,移除冗余的“管理人员”按钮(功能已合并至编辑页)。
  • FEAT编辑活动时,时间输入框自动回填当前时间,解决了 datetime-local 格式不兼容导致无法显示旧时间的问题。

v1.5.1

2025-12-20 23:03
MyBatis 绑定异常修复
Critical Error: Invalid bound statement (not found): ...decreaseParticipantCount

原因:在 Java Mapper 接口中添加了方法,但忘记在 XML 文件中同步添加对应的 SQL 标签。已全量同步 Mapper 接口与 XML 文件。

v1.5.0

2025-12-20 22:30
真实业务场景模拟 & 管理升级
  • DATA编写 MySQL 存储过程 generate_mock_data,生成 400个模拟用户3000条报名记录,模拟真实高并发后的数据状态。
  • LOGIC新增 “后悔药”机制:允许用户在活动开始前1天取消报名。
  • ADMIN活动编辑页新增 Tab 分栏,集成“人员管理”功能,支持管理员移除违规报名的用户。
  • CACHE取消报名/移除人员时,强制触发 @CacheEvict,解决前端人数刷新滞后问题。

v1.4.0

2025-12-20 21:15
搜索体验与交互升级
  • API新增 /api/search/suggest 接口,返回 JSON 数据。
  • JS前端实现 Typeahead (联想搜索),输入关键字自动弹出下拉候选框。
  • SQL修改 ActivityMapper,支持同时匹配标题或 地点 (Location)

v1.3.2

2025-12-20 19:52
算术异常修复
Error: java.lang.ArithmeticException: / by zero

原因:部分测试数据的 max_participants 被设为 0,导致前端进度条计算百分比时除以零。

  • SQL清洗数据库,修正非法数据。
  • UI前端增加防御性编程:th:style="'width: ' + (${max > 0 ? current * 100 / max : 100}) + '%'"

v1.3.1

2025-12-20 19:48
Redis 序列化灾难修复

引入 Redis 后,访问列表页直接 500 报错。

SerializationException: Java 8 date/time type `java.time.LocalDateTime` not supported by default

Solution: 重写 RedisConfig,向 ObjectMapper 注册 JavaTimeModule,并开启 default typing。

v1.3.0

2025-12-20 19:20
高并发与缓存架构升级

为了解决“多人抢课”可能导致的超卖问题,对底层架构进行了大改。

  • REDIS全站热点数据接入 Redis 缓存。
  • LOCK放弃 Java 锁,改用 MySQL 乐观锁 (update ... where count < max) 实现原子报名。
  • UI重写 activity-form.html,界面风格从 Bootstrap 原生升级为 玻璃拟态

v1.1.2

2025-12-20 19:10
MyBatis 别名扫描修复

修复了 Could not resolve type alias 'ActivityRegistration' 错误。原因是从旧项目迁移时包名未修改。强制改为使用全限定类名。

v1.1.0

2025-12-20 18:30
文件持久化与基础功能完善
  • UPLOAD配置 WebConfig 虚拟路径映射,解决重启后上传图片丢失的问题。
  • AUTH完善登录/注册逻辑,区分管理员与普通用户视图。
  • CODE修复了 MainController 中缺失的 File, UUID 等包导入错误。

v1.0.0

2025-12-20 14:00
Initial Commit (基于 Exp7)

基于实验七的基础 CRUD 代码进行 Spring Boot 3.3 迁移与环境搭建。

"Every bug fixed is a lesson learned."