# school-food-share **Repository Path**: Strange_Java/school-food-share ## Basic Information - **Project Name**: school-food-share - **Description**: 校园美食分享平台(后端) - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-01 - **Last Updated**: 2025-08-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, SpringBoot, MyBatis, Redis, Shiro ## README # 校园美食分享平台 🍱 ## 📖 项目简介 **School Food Share** 是一个基于 Spring Boot 和 Vue 构建的校园美食分享平台,旨在为广大师生提供一个交流、分享、发现校园美食的互动社区。 该平台支持用户分享校园内的美食信息、发表评论、收藏喜欢的美食,并支持多学校与餐厅的信息管理,是一个功能完善、模块清晰的校园生活辅助平台。 --- ## 🎯 核心功能 - 👤 用户管理:注册、登录、角色权限控制(Shiro + JWT) - 🍲 美食分享:发布餐厅、窗口、营业时间、美食描述等 - 📂 美食分类:按类型(如主食、甜点、饮品等)管理展示 - 💬 评论系统:支持评论与回复功能 - ⭐ 收藏功能:用户可收藏喜爱的美食 - 🏫 学校管理:支持多个学校的信息维护与切换 - 🏢 餐厅管理:管理各学校下的餐厅信息 - 📊 数据统计:首页可视化统计(美食数量、活跃用户等) - 📄 日志管理:记录用户操作日志与登录日志 --- ## 🛠 技术栈 ### 🔙 后端技术 | 技术 | 说明 | |--------------|------------------------| | Java | JDK 1.8+ | | Spring Boot | 2.4.2 | | MyBatis-Plus | 3.4.1 ORM 框架 | | MySQL | 8.0 | | Redis | 6.0+ 缓存与登录验证支持 | | Druid | 1.2.16 数据库连接池 | | Shiro + JWT | 安全认证与权限控制 | | FastJSON | 2.0.25 JSON 解析 | | Hutool | 5.8.15 工具包 | | Lombok | 简化实体类代码 | ### 🔜 前端技术 | 技术 | 说明 | |----------|------------------| | Vue.js | 主流渐进式框架 | | Node.js | 构建与依赖管理 | | Axios | HTTP 请求库 | | Element UI | UI组件库| ## 🏗️ 项目结构
``` school-food-share/ ├── src │ ├── main │ │ ├── java │ │ │ └── com.project.schoolFoodShare │ │ │ ├── SchoolFoodShareApplication.java // 启动类 │ │ │ ├── config // 配置类 │ │ │ │ ├── aspectj // AOP切面配置 │ │ │ │ ├── config // 核心配置类 │ │ │ │ ├── custom // 自定义配置 │ │ │ │ ├── datasource // 数据源配置 │ │ │ │ ├── event // 事件配置 │ │ │ │ ├── filter // 过滤器配置 │ │ │ │ ├── handler // 处理器配置 │ │ │ │ ├── interceptor // 拦截器配置 │ │ │ │ ├── properties // 属性配置 │ │ │ │ └── utils // 配置工具类 │ │ │ ├── controller // 控制器层 │ │ │ │ ├── comment // 评论控制器 │ │ │ │ ├── common // 公共控制器 │ │ │ │ ├── favor // 收藏控制器 │ │ │ │ ├── index // 首页控制器 │ │ │ │ ├── list // 美食列表控制器 │ │ │ │ ├── login // 登录控制器 │ │ │ │ ├── log // 日志控制器 │ │ │ │ ├── menu // 菜单控制器 │ │ │ │ ├── remark // 说明控制器 │ │ │ │ ├── restaurant // 餐厅控制器 │ │ │ │ ├── role // 角色控制器 │ │ │ │ ├── school // 学校控制器 │ │ │ │ ├── type // 类型控制器 │ │ │ │ └── user // 用户控制器 │ │ │ ├── domain // 实体类 │ │ │ ├── mapper // MyBatis映射接口 │ │ │ ├── service // 服务接口层 │ │ │ │ ├── impl // 服务实现类 │ │ │ ├── common // 公共组件 │ │ │ │ ├── annotation // 自定义注解 │ │ │ │ ├── constant // 常量定义 │ │ │ │ ├── domain // 公共领域对象 │ │ │ │ ├── enums // 枚举类 │ │ │ │ ├── exception // 异常处理 │ │ │ │ ├── text // 文本处理 │ │ │ │ ├── utils // 工具类 │ │ │ │ └── xss // XSS防护 │ │ │ └── handle // 全局处理器 │ │ └── resources │ │ ├── mapper // MyBatis映射文件 │ │ │ ├── comment // 评论映射文件 │ │ │ ├── favor // 收藏映射文件 │ │ │ ├── list // 美食列表映射文件 │ │ │ ├── log // 日志映射文件 │ │ │ ├── menu // 菜单映射文件 │ │ │ ├── remark // 说明映射文件 │ │ │ ├── restaurant // 餐厅映射文件 │ │ │ ├── role // 角色映射文件 │ │ │ ├── school // 学校映射文件 │ │ │ ├── type // 类型映射文件 │ │ │ └── user // 用户映射文件 │ │ ├── mybatis // MyBatis配置 │ │ ├── application.yml // 应用主配置文件 │ │ ├── application-dev.yml // 开发环境配置文件 │ │ ├── banner.txt // 启动横幅 │ │ ├── logback-spring.xml // 日志配置文件 │ │ └── ape-school-food.sql // 数据库初始化脚本 │ └── test // 测试代码(目录不存在) ├── img/ // 图片资源目录 └── pom.xml // Maven依赖配置 ```--- ## 🚀 快速启动指南 ### 📦 环境要求 - JDK 1.8+ - Maven 3.6+ - MySQL 8.0+ - Redis 6.0+ ### 📌项目克隆 ``` git clone https://gitee.com/Strange_Java/school-food-share.git cd school-food-share ``` ## 🖥 后端启动步骤 ### 1️⃣ 创建数据库 ```sql CREATE DATABASE ape_school_food; ``` ### 2️⃣ 导入 SQL 脚本 将以下 SQL 脚本导入 MySQL 数据库: src/main/resources/ape-school-food.sql ### 3️⃣ 配置数据库连接 ``` 编辑配置文件 src/main/resources/application-dev.yml: spring: datasource: url: jdbc:mysql://localhost:3306/ape_school_food?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: your_username password: your_password redis: host: 127.0.0.1 port: 6379 ``` ### 4️⃣ 启动项目 使用 IDE 运行 SchoolFoodApplication.java,或通过命令行启动: ``` mvn spring-boot:run ``` ### 5️⃣ 接口访问地址 ``` 后端接口地址:http://localhost:8080 Druid 监控地址:http://localhost:8080/druid 用户名:schoolFood 密码:123456 ``` ## 💻 前端运行步骤 ### 1️⃣ 进入前端项目目录 ``` cd school-food-manage cd school-food-front ``` ### 2️⃣ 安装依赖 ``` npm install ``` ### 3️⃣ 启动开发环境 ``` npm run serve ``` ### 4️⃣ 浏览器访问地址 管理端:http://localhost:3000 用户端:http://localhost:3001 ## 🧩 数据库结构概览 food_list 美食信息表 food_restaurant 餐厅信息表 food_school 学校信息表 food_type 美食分类表 food_comment 评论表 food_favor 收藏记录表 user 用户表 role 角色表 menu 菜单权限表 login_log 登录日志 operate_log 操作日志 food_remark 美食说明 ## 📷 项目截图          ## 👨💻 作者信息 谷嘉炜 📧 邮箱:3101691246@qq.com