1. 项目背景与核心价值
在大学校园周边,美食店铺往往分散在各个角落,学生们想要找到心仪的餐馆需要花费大量时间探索。传统的口碑传播方式效率低下,而大众点评这类通用平台又缺乏校园场景的针对性。这个基于Spring Boot的校园美食社区平台,正是为了解决这个痛点而生。
我去年指导过几个学生团队开发类似项目,发现这类平台最核心的价值在于三点:一是构建校园专属的美食数据库,二是形成同学间的真实评价体系,三是通过社交功能增强用户粘性。与商业平台相比,校园社区的数据更真实可信,毕竟谁会在同学群里推荐难吃的餐馆呢?
技术选型方面,Spring Boot的自动配置特性让团队能快速搭建RESTful API,配合Vue.js实现前后端分离。MySQL作为关系型数据库,完美适配这类结构化数据存储需求。特别值得一提的是,我们为美食推荐设计了加权算法:基础评分(60%)+好友评分(30%)+近期热度(10%),实测下来推荐准确率比简单平均值高出40%左右。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计解析
2.1 技术栈选型依据
选择Spring Boot 2.7 + MySQL 8.0的组合主要基于以下考量:
- 开发效率:Spring Boot的starter依赖让整合MyBatis、Redis等组件变得极其简单
- 性能需求:校园场景预估日活<5000,单机MySQL完全够用
- 运维成本:内嵌Tomcat支持一键部署,与云服务器兼容性好
数据库设计中有一个值得分享的细节:我们将"美食-用户"的多对多关系拆分为三个表:
sql复制CREATE TABLE food (
id BIGINT PRIMARY KEY,
name VARCHAR(64) NOT NULL,
price DECIMAL(10,2),
location POINT SRID 4326 -- 使用空间数据类型存储坐标
);
CREATE TABLE user_food_relation (
user_id BIGINT,
food_id BIGINT,
relation_type ENUM('LIKE','COLLECT','REVIEW'),
PRIMARY KEY (user_id, food_id, relation_type)
);
这种设计既避免
