电商系统不是技术堆叠:LikeShop如何用分层Hold住复杂业务? 很多电商系统介绍技术栈时只会罗列框架和数据库但真正有价值的问题是这些技术如何协同解决“复杂电商业务”的本文不吹嘘“新技术”而是从稳定性、分层设计、数据库优化、认证选型、前端多端等维度拆解一套可落地的电商架构设计思路。一、为什么这套架构不是“简单技术堆叠”随手打开一个电商项目的技术文档常见画风是使用 Spring Boot使用 MySQL使用 Redis前端用 Vue然后……就没了。这就像说“我造了一栋楼用了钢筋水泥”但没人知道承重结构怎么设计、水电如何走线、遇到地震会不会倒。真正有经验的架构师会问这些技术是如何协同工作来应对秒杀库存扣减、优惠券叠加、订单状态机、多端同步等复杂场景的LikeShop 单商户 Java 版的设计核心不是“技术先进”而是在可控复杂度下支撑高频交易 营销规则 长期二开的能力。下面我们就从后端到前端逐一拆解每个选型背后的取舍逻辑。二、后端技术栈稳定优先而不是激进升级1. 核心框架与架构模式基础框架Spring Boot 2.7.5开发语言Java 1.8项目管理Maven架构模式多模块分层架构为什么不是 Spring Boot 3.x Java 17答案很现实电商系统优先考虑“稳定性 生态成熟度”。Spring Boot 2.7.x Java 8 的组合生态最成熟兼容性最好企业使用最广。大量第三方库支付、物流、短信等在 Java 8 下经过长期考验升级到 Java 17 可能引入不可预见的兼容性风险。对于电商业务减少不可控问题远比“追新”更重要。 这意味着部署运维风险更低长期稳定性更高。2. 多模块分层架构——主动控制复杂度LikeShop 不是单体“代码堆”而是通过模块化 分层来防止业务逻辑互相污染。典型分层如下api接口层 → 接收 HTTP 请求参数校验 ↓ application应用编排→ 组合多个领域服务处理事务边界 ↓ domain核心业务逻辑 → 订单、营销、库存等核心规则 ↓ infrastructure数据与外部依赖→ 数据库操作、RPC、缓存关键收益当营销规则变更时只需修改domain中的相关领域对象不会波及api和infrastructure。复杂业务被隔离在特定层级整个系统不至于“牵一发动全身”。三、数据库与数据访问围绕“订单密集写入”优化数据库MySQL 5.7.49ORMMyBatis Plus 3.5.2为什么不用 PostgreSQL 或 NoSQL单商户系统的瓶颈通常不在数据库类型而在访问模式。MySQL 5.7 足够成熟运维成本低且能支撑绝大多数电商场景订单量级在百万至千万级别。MyBatis Plus 的价值相比 JPA/Hibernate它更接近原生 SQL开发人员对最终执行的 SQL 有完全控制权。电商系统中经常需要复杂的统计查询、联表聚合ORM 的自动映射容易产生性能坑而 MyBatis Plus 允许精细调优。提供基础的 CRUD 能力减少重复代码但不会强制抽象。核心原则在电商系统中SQL 可控性 ORM 抽象能力。四、安全与认证轻量但高性能的会话模型权限框架Sa-Token 1.32.0缓存支持Redis集成 Sa-Token为什么不是 Spring Security这是一个典型的架构取舍问题Spring Security功能强大但体系复杂学习成本高配置繁琐。Sa-Token轻量、易扩展、注解驱动更贴近业务开发习惯。对于电商系统认证授权不是核心业务没必要引入一个“庞然大物”。Sa-Token 降低了认证系统的复杂度让团队把精力集中在订单和营销上。Redis 的作用存储会话信息支持分布式登录态共享。高并发下基于内存的 Session 读写比传统 HttpSession 更高效。五、工具层设计不是“方便”而是“降低系统噪音”JSON处理Fastjson2 2.0.16对象简化Lombok 1.18.24这些工具表面上是“省代码”实际目的是降低非业务复杂度让核心逻辑更清晰。Fastjson2高性能 JSON 序列化/反序列化减少接口交互时的 CPU 开销。Lombok消除 getter/setter/日志等样板代码让业务代码更简洁。但要注意Lombok 需团队统一规范否则会带来调试不便——这是“取舍”的一部分。六、前端架构统一多端而不是重复开发管理后台Admin框架Vue 3 TypeScript构建ViteUI库Element Plus状态管理Pinia 设计目标快速开发、强类型约束、高可维护性。管理后台面向运营人员交互相对固定但业务逻辑复杂商品上下架、订单处理、报表TypeScript 能有效减少运行时类型错误。移动端核心用户侧框架UniApp Vue 3 TypeScript支持平台微信小程序、支付宝小程序、H5为什么选择 UniApp不是因为“跨端”听起来酷而是用一套业务代码覆盖多个流量入口。对于电商而言小程序微信支付宝和 H5 是核心获客渠道若每个端独立开发成本翻倍且体验难以一致。UniApp 让我们能做到活动页面同步上线购物车、订单状态逻辑统一降低长期维护成本七、真正的核心复杂度如何被控制上面所有的技术选型最终都指向一个目标控制电商系统的复杂度增长。LikeShop 采取了以下关键策略把复杂度集中在“订单 营销”电商最易变的业务是价格计算、优惠券叠加、库存扣减。将这些逻辑收拢在domain层而不是分散在各个 Controller 或 Service 中。用分层架构隔离变化上层api负责协议适配中层application负责流程编排下层infrastructure负责数据持久化当支付通道更换时只需调整 infrastructure 中的支付实现核心业务不受影响。用稳定技术栈降低风险不追新版本不堆砌“网红”技术每个选型都有明确的“为什么”而非“别人也用”八、总结LikeShop 单商户 Java 架构的本质不是“技术先进”而是在成熟技术栈下通过结构设计控制复杂业务使系统既能稳定运行又能持续演进。真正优秀的电商系统不是用了多少新技术而是在复杂业务下依然保持稳定与可控。如果你正在规划或重构一个电商项目希望本文的选型思路和分层策略能给你一些参考——技术没有最好只有最合适。一句话总结成熟技术栈 清晰分层 可控复杂度 长期可维护。