为什么大型网站开发不用java框架?聊聊它的优缺点和适用场景!
发布时间 - 2025-12-10 22:44:15 点击率:次大家今天想跟大家唠唠我之前亲身经历过的一件事儿,就是我们当时做一个挺大的网站项目,愣是没用市面上那些流行的Java框架,比如Spring啥的。现在回想起来,过程挺折腾,但也确实有不少体会。
为啥一开始就没想用框架?
这事儿得从头说起。当时我们团队几个人,刚接手这个项目的时候,规模预估得没那么大,就觉得可能就是个中等大小的网站。而且我们几个当时对那些重型的Java框架有点怵,感觉学起来费劲,条条框框又多,怕被束缚住。加上项目初期时间也比较紧,就想着,要不咱们就“返璞归真”一把,直接用Servlet那套最基础的东西来搞?至少这玩意儿咱们都熟,掌控力强。
当时的想法很简单:
- 快速上手,不用花太多时间去学新框架的各种配置和概念。
- 灵活,想怎么写就怎么写,不受框架约束。
- 觉得性能可能会更毕竟少那么多“中间层”。
现在想想,那时候还是有点“年少轻狂”,觉得框架都是“累赘”。这个决定也为后面的开发埋下不少“坑”。
具体是怎么干的?
决定不用框架,那就得撸起袖子自己干。我们大概是这么分工和搭建基础的:
1. 底层Web交互: 这个没啥好说的,就用最基础的Servlet API。自己写Servlet来处理HTTP请求,接收参数,然后调用业务逻辑。路由这块儿,也没用什么高级注解,就是*里老老实实配置,或者写个非常简单的内部映射规则。
2. 业务逻辑处理: 就是普通的Java类,把业务逻辑封装在里面。我们当时定些简单的规范,比如分包结构,怎么命名之类的,尽量让代码看起来不那么乱。
3. 数据库操作: 这个是重点。没用MyBatis或者Hibernate,我们直接上手写JDBC。为方便点,封装一些基础的增删改查的工具类,搞个简单的连接池(用的好像是Druid还是C3P0,记不太清),避免每次都创建连接。SQL语句基本都是手写,调优也得自己盯着。
4. 视图层: 页面展示主要用JSP。不过我们特别强调,JSP里面尽量不要写Java逻辑代码,就用些标签库(比如JSTL)来展示数据,或者干脆就让前端用纯静态页面加Ajax来交互,后端只提供API接口,返回JSON数据。
5. 依赖管理和 项目构建和依赖管理还是用Maven,这个没跑。日志用Logback。其他一些零零散散的功能,比如文件上传、权限控制啥的,都是找些独立的、轻量级的库,或者干脆自己动手实现一部分。
开发过程中的挣扎与坚持
过程嘛肯定不是一帆风顺的。最大的感受就是累!
没框架,意味着好多东西都得自己写。比如,请求参数的绑定、数据校验、事务管理(虽然数据库层面有,但业务层有时需要更细粒度的控制)、统一的异常处理等等。这些在框架里可能就是一个注解或者简单配置的事儿,我们得写不少模板代码(boilerplate code)。
团队成员的技术水平和编码习惯不一,也容易导致代码风格混乱。我们花不少时间来统一规范,做Code Review,不然项目一大,维护起来简直是灾难。
随着项目越做越大,用户量上来,新功能不断加进来,“大型网站”的雏形慢慢显现。这时候,前期没用框架的一些弊端就暴露出来。比如,想加个缓存,想搞个统一的权限拦截,都得自己动手设计和实现,挺费劲的。
但我们还是坚持下来。 一方面是“开弓没有回头箭”,项目都搞一半,再换框架成本太高。另一方面,确实也锻炼队伍,大家对底层的原理理解得更透彻。每次解决一个难题,比如性能瓶颈,或者自己实现一个原本框架才有的功能,那种成就感还是挺强的。
最终结果和反思
项目上线,经过几轮优化,跑得也还算稳定。支撑的业务量也确实达到“大型网站”的级别。
回过头来看,不用Java框架开发大型网站,这事儿到底值不值?
我觉得得分情况看。
好处是:
- 完全掌控: 对代码的每一部分都有绝对的控制力,没有黑盒。
- 可能更轻量: 如果控制得运行时确实可能比引入庞大框架更节省资源。
- 技术沉淀: 团队成员对底层技术理解会更深入。
坏处也很明显:
- 开发效率低: 大量重复劳动,造轮子。
- 维护成本高: 对团队成员的水平和纪律性要求极高,新人上手慢。
- 容易出错: 自己实现的东西,没有经过社区大规模验证,可能隐藏bug。
- 生态缺失: 很多现成的解决方案(比如安全、监控、分布式等)需要自己整合或实现。
我的体会是:对于绝大多数追求效率和稳定性的商业项目,尤其是有一定规模的,成熟的Java框架(比如Spring Boot全家桶)依然是更好的选择。它们解决太多基础性、通用性的问题,让你能更专注于业务本身。
我们当初那个项目,属于特定条件下(初期判断失误、团队特定偏好、时间压力等)的一个选择。虽然最终磕磕绊绊也搞定,但过程中的辛苦和风险,现在想想还是挺大的。如果再给我一次机会,做一个明确要支撑大规模用户的网站,我大概率还是会老老实实选用一个主流框架。
这回经历算是给我自己上一课。技术选型这事儿,没有绝对的好坏,只有合不合适。别为“炫技”或者“不一样”而刻意回避成熟方案,除非你真的有非常充分的理由和驾驭能力。分享出来,给大家做个参考。
下一篇:暂无
下一篇:暂无

