1. 项目背景与核心需求
作为一名长期关注个人财务管理的开发者,我发现身边不少大学生和职场新人普遍存在"钱不知道花哪儿去了"的困惑。市面上虽然有不少记账软件,但要么功能过于简单,要么就是国外产品水土不服。这就是为什么我决定开发这套基于SSM+Vue的家庭财务管理系统。
这个系统的核心要解决三个痛点:
- 多账户资金分散管理难(比如同时有支付宝、微信、多张银行卡)
- 预算控制和理财收益跟踪脱节
- 传统JavaWeb项目在移动端的体验不佳
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术选型与架构设计
2.1 为什么选择SSM+Vue组合
在技术选型阶段,我对比了几种常见方案:
- 纯Servlet/JSP:开发效率低,维护成本高
- SpringBoot+Thymeleaf:前后端耦合度高
- Node.js全栈:团队Java基础更扎实
最终选择SSM(Spring+SpringMVC+MyBatis)作为后端,Vue.js作为前端,主要基于以下考虑:
- 团队熟悉Java技术栈,SSM框架成熟稳定
- Vue的响应式特性非常适合财务数据实时展示
- 前后端分离便于后期App扩展
2.2 系统架构详解
系统采用典型的三层架构:
code复制表现层:Vue.js + ElementUI
业务层:Spring + SpringMVC
数据层:MyBatis + MySQL
关键设计决策:
- 使用JWT替代Session解决跨域问题
- Redis缓存热点数据(如账户余额)
- Quartz定时任务处理周期性账单
3. 核心功能实现细节
3.1 多账户管理模块
账户类型设计为6大类:
- 现金账户
- 储蓄卡
- 信用卡
- 第三方支付(支付宝/微信)
- 投资账户
- 负债账户
数据库表设计关键字段:
sql复制CREATE TABLE `account` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`account_type` tinyint(4) NOT NULL COMMENT '账户类型',
`account_name` varchar(50) NOT NULL,
`balance
