最近刷社区,发现一个明显的趋势:纯前端的生存空间正在收窄,越来越多前端同学在往全栈方向转型,而技术栈的选择,又大多指向了 Java。
想起三年前那篇争议不小的文章:《也许跟大家不太一样,我是这么用TypeScript来写前端的》。当时评论区不少朋友跟我“辩论”Java相关的问题,一晃这么多年过去了。
说到前端转全栈,我感触颇深。
早年间写网页,还是 ASP + HTML 的时代,根本没有前后端分离、前端工程化这些概念。后来短暂接触过 ASP.NET,但天生对微软技术栈不太“来电”,转而摸到了 Java Web:从最早的 JSP 到 Servlet,再到 SSH 框架,始终没找到那种“顺手”的感觉。
之后很长一段时间转投 PHP,把 CodeIgniter、Laravel、Yii、ThinkPHP 都折腾了一遍,也算混口饭吃。期间也没闲着,试过 Node.js 后端,玩过 Egg.js、Express、Koa,甚至 NestJS——框架本身不错,但依赖注入用起来总觉得别扭,始终缺了点“舒心”的体验。
后来专职做前端,从 Vue2 写到 Vue3,也顺势开了掘金专栏 《用TypeScript写前端》。但也是在这个阶段,我的后端技术栈慢慢“回归”到了Java——不是因为情怀,而是它的强类型、工程化能力,刚好能承接复杂业务系统的稳定性需求。
如果你也打算从前端转Java全栈,我的建议是:先正视Java的“裹脚布”——强面向对象。这也是我在前端专栏里反复强调的思维基础。
:)如果你还没看过这个专栏,我还是建议你先读一读。
我们也整理了专门的Java后端专栏:《来杯Java压压惊》,里面有很多从前端视角切入的后端开发心得。
关于面向对象,我们也在多篇前端文章中反复提及:
推荐的开源项目
为了降低前端转全栈的“陡峭曲线”,我在GitHub上开源了一套从基础框架到企业级应用的完整方案。代码注释详尽、设计模式清晰,非常适合边看边练:
🟢 AirPower4J
这是一套 Java 后端开发脚手架,基于 SpringBoot + JPA。
内置了日常开发高频需要的模块:
- RBAC权限体系:用户、角色、权限的完整实现
- CURD封装:通用Controller/Service/Repository层,减少重复代码
- 异常处理:自定义异常体系,统一错误响应格式
- 多租户SaaS:支持子域名/独立域名绑定
- 安全模块:加解密、签名验签、防重放攻击
- WebSocket:实时通信支持
项目特点:
- 大量使用
注解、切面编程(AOP)、设计模式,代码可读性强 - 基于JPA的
ddl-auto,无需手写SQL即可初始化数据库 - 统一使用
Entity作为数据结构,降低DTO/VO/EO的认知负担 - 配套工具类(
Utils)、字典枚举(IDictionary)、树结构工具(TreeUtil)一应俱全
如果你是前端背景,看这个项目的代码,会发现很多“熟悉的味道”:装饰器思想、配置化开发、分层架构——本质上和前端组件化思维是相通的。
🔵 SPMS-Server
这是基于 AirPower4J 开发的企业级后端应用,集成了制造业核心业务模块:
- MES(制造执行系统):生产订单全流程跟踪、实时数据采集
- WMS(仓库管理系统):入库/出库/盘点/批次管理
- ERP(企业资源计划):财务、采购、销售、库存一体化
- QMS(质量管理系统):质量策划、控制、改进闭环
- IoTS(物联网系统):设备远程监控、预防性维护
学习建议: 你可以先砍掉不需要的模块(比如暂时不需要IoTS),聚焦核心逻辑,再逐步扩展。这是学习复杂业务系统架构的最佳路径。
🟠 SPMS-Web
这是与 SPMS-Server 配套的前端项目,基于 Vue3 + Element Plus + @airpower/web 开发。
它提供了一套完整的前端开发框架,包括 MES、WMS、ERP、QMS、IoTS 等模块的页面,以及一些通用的页面,如登录、注册、404、500、403、权限管理、多语言、文件上传、富文本、图表等。
🟣 @airpower/web
这是基于 Vue3、Element Plus、TypeScript 开发的一套完整前端开发框架。
核心特点:
- 大量使用 面向对象 的编程模式(如
Model定义、Decorator使用) - 内置数据模型转换,后端返回的“脏数据”会自动适配前端结构
- 权限管理、加解密、网络请求等通用能力封装完善
这使得整个前后端配合更默契,非常适合习惯了 TypeScript 的前端开发者平滑过渡到全栈开发。
写在最后
今天推荐的项目都是我在实际业务中打磨过的,代码注释尽可能详细,设计上也尽量贴合前端同学的学习习惯。
Happy Coding!🚀