丰富简历!来,手把手带你撸个Tomcat
你好,我是yes。
Tomcat 作为一款历史悠久的开源软件,很多朋友可能大学的时候就认识它了,工作中和它打交道的人也不少,甚至可以说是使用最广泛的 Web 应用服务器。
这样一个成熟的工具,我们还有必要深入学习它吗?如果手写一个 Tomcat,我们又有什么收获呢?
很多人觉得日常工作中我会用就行了,刚开始的时候确实没问题,不过如果仅仅停留在会用,那么你离掌握这门技术就还远,遇到复杂问题的时候也就不知道从哪儿下手去解决了。
Tomcat 处理一个 HTTP 请求的完整流程
用的时候它确实很简单,说白了就是一个 Socket Server,但是对应到工程上却并不容易。如果这个服务器只需要响应一次请求,确实是没有什么可做的,但是现实世界并不是这样,我们还要考虑一些啰嗦事:
如何管理多个 Servlet? 如何支持多个独立的应用? 大量用户请求的性能问题如何解决?
Tomcat 作为一款实用的 Servlet 应用服务器,考虑到这些事项,内部的程序结构会变得很复杂。这些在我们学习了 Tomcat 的源码后,会有很多的启发。
另一方面,近几年各种应用数不胜数,各种语言和工具也频繁迭代,我们作为专业程序员,深入底层,理解中间层是很必要的。
对这些基础服务的理解,能让我们以不变应万变,把握住技术快速流变中相对稳定的内核。理解了底层运行原理,知道了所以然,工作中可以更加高效准确地使用中间件提供的服务,提高应用程序的质量。长期来讲,让我们的事业更成功。
跳出功利心,我们从更高的角度来看。作为一个专业人士,能将自己的专业从头到尾融会贯通,这种收获感,也是对自己定下志向一生选择这个专业的一个交代。而作为个人,对这个世界的某个方面有了一个透彻的理解,会感到不虚此生之行,更是一种深层的幸福。
那么,如何高效地掌握 Tomcat?
当然可以,如果我们只是实现一个「微型」的 Tomcat 框架的话,还是可以搞定的。
我们写 MiniTomcat 的目标是掌握 Tomcat,所以我们不会自己创新什么,而是老老实实按照 Tomcat 的样子模仿着手写。因此我们的目录结构、包名、类名、接口名、继承体系、类中的主要方法名都是参照 Tomcat 本身的。
在这里,我推荐一张「中国 Java 研发工程师鼻祖」之一郭屹梳理的「手写 MiniTomcat 体系图」,内容自于他的《手把手带你写一个 MiniTomcat》专栏,建议先码后看。
我对这方面挺感兴趣的,所以一上线就入手了,今天早鸟特惠,价格也很合适,推荐给你:
关于作者 - 郭屹
作为一个 30 年技术老兵,他可以称为中国 Java 研发工程师鼻祖之一:曾在 Sun Microsystems 公司 Java 研发中心担任 J2EE 研发工程师,同时他也是 JDBC Driver、Minis 开发者,Norming 软件国际的 CTO。
手写 MiniTomcat 是如何设计的?
第一章 实现一个简单的 Web 应用服务器
第二章 实现专业的 Connector
这一部分的改造过后,MiniTomcat 的连接层就有模有样了。
第四章 完成 MiniTomcat 及扩展讨论
作为扩展,课程会探讨如何把 MiniSpring 打包放在 MiniTomcat 中运行,形成 Mini 系列的核心环境,还将探讨将网络 IO 扩展为支持 NIO,以支持高并发场景的方案。
通过目录来看看具体内容吧:
我们在工作中,总是有前辈谆谆教导不要重新造轮子。这句话是对的,对于要快速搭建交付给客户的项目来讲,尽量采用第三方来搭建项目是明智的选择。然而选择就意味着取舍,不重新造轮子,失去的就是对软件基础的透彻理解,技术流于表面,软件工程师变成了码农。为了弄清楚软件系统如何运行起来的,成为专家,我们必须学会重新造轮子。
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。