1. 项目概述:基于SpringBoot+Vue的Android菜谱分享系统
去年在开发一款家庭食谱管理应用时,我发现市面上大多数菜谱APP要么功能单一,要么社交属性薄弱。于是决定自己打造一个融合内容管理、社交互动和个性化推荐的全栈应用。这个系统采用SpringBoot+Vue技术栈,最终通过Android WebView封装成移动应用,上线后日活稳定在5000+。
核心解决三个痛点:
- 家庭用户分散的食谱管理需求(纸质菜谱易丢失、手机相册杂乱)
- 烹饪爱好者缺乏垂直交流平台(通用社交平台信息过载)
- 新手难以获取个性化菜谱推荐(传统APP推荐精度低)
技术选型上,后端用SpringBoot快速构建REST API,前端用Vue实现响应式界面,Android端采用混合开发模式平衡开发效率和原生体验。数据库选用MySQL 8.0,利用其JSON字段特性存储菜谱的步骤图文信息。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计解析
2.1 前后端分离架构
采用经典的前后端分离模式,通过清晰的API契约实现解耦:
code复制客户端层(Android/Vue)
↓ HTTPS
API网关(Spring Cloud Gateway)
↓
微服务集群(用户服务/菜谱服务/推荐服务)
↓
数据存储(MySQL+Redis)
这种架构的优势在于:
- 移动端和Web端可复用同一套API
- 各服务可独立部署扩展(如推荐服务需要更多GPU资源)
- 技术栈灵活(后期可替换推荐算法模块)
2.2 混合开发方案选型
对比三种Android集成方案后,最终选择WebView方案:
| 方案 | 开发效率 | 性能表现 | 原生功能访问 |
|---|---|---|---|
| 纯原生开发 | 低 | 高 | 完全支持 |
| React Native | 中 | 中 | 需桥接 |
| WebView+增强插件 | 高 | 中 | 部分支持 |
选择依据:
- 菜谱类应用以内容展示为主,无需复杂动画
- 80%功能可通过Web实现,剩余20%原生功能(如相机调用)通过WebView插件实现
- 团队熟悉Vue技术栈,可快速迭代
3. 核心模块实现细节
3.1 用户认证模块
采用JWT+Spring Security的认证方案,关键实现点:
java复制// JWT生成过滤器
public class JwtGeneratorFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response,
FilterChain filterChain) {
Authentication authentication = SecurityContextHolder.get
