1. 项目背景与核心价值
去年参与某20人规模初创企业的数字化改造时,我深刻体会到中小企业对轻量化办公系统的迫切需求。当时企业主拿着某大厂OA的报价单苦笑:"我们只需要基础的考勤和审批功能,却要为90%用不上的模块买单"。这正是我选择开发这套SSM+Vue协同系统的初衷——用3万行代码实现中小企业真正需要的核心功能。
这套系统最显著的特点是"精准瘦身":前端采用Vue3组合式API开发,打包体积控制在280KB以内;后端基于SpringBoot2.7+MyBatis-Plus构建,配合MySQL分区表设计,在2核4G的云服务器上即可流畅支持30人同时在线操作。与主流SaaS产品相比,它解决了三个痛点:①数据完全自主掌控,避免敏感信息外流;②功能模块可按需裁剪,降低硬件资源消耗;③年使用成本仅为商业系统的1/10。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计解析
2.1 整体架构设计
系统采用经典的前后端分离架构,但针对小型企业场景做了特殊优化。前端使用Vue3+Pinia状态管理,通过路由懒加载将首屏加载时间控制在1.2秒内;后端采用三层架构设计,但将传统的Controller-Service-DAO简化为Controller-Mapper两层,减少代码层级。这种设计在3万行代码规模下,既能保持结构清晰,又避免了过度设计带来的复杂度。
数据库方面,我们做了三个关键决策:
- 所有表字段均采用小写+下划线命名,与JavaBean的驼峰命名形成明确映射关系
- 考勤记录表按月份分区,配合MyBatis-Plus的自动分表插件实现冷热数据分离
- 为部门表设计闭包表结构,解决树形数据递归查询的性能问题
2.2 关键技术选型
前端技术栈:
- Vue3.2 + Composition API:比Options API减少30%的代码量
- Vite构建工具:开发环境热更新速度比Webpack快5倍
- Naive UI组件库:仅引入使用的组件,最终打包体积比Element Plus小40%
后端技术栈:
- SpringBoot2.7:内嵌Tomcat简化部署
- MyBatis-Plus3.5:节省90%的单表CRUD代码
- Hutool5.8:提供Excel导出等工具类方法
- Redisson3.17:实现分布式锁防止考勤
