本文转载自:我作程序员这十年(三)—— spring、Struts、Hibernate前端
我作程序员的这十年(一)程序员
我作程序员这十年(二)spring
由此我开始了程序员生涯的第一天,当我自信满满的准备大展身手时。忽然发现,教科书上的那一套在工做中根本不适用。缓存
让我印象最深入的就是工做中使用了一整套的Web框架,而我只会写Servlet。当时几乎颠覆了个人想象,原来平时写的那么多Servlet尽然能够在xml文件中配置一个映射关系就行,并且做为请求的入口控制器彻底不须要像Servlet那样实现doGet 和 doPost 这两个方法。认识中每一个请求对应一个Servlet在这些框架中彻底不是一个东西。当时的前端控制器是经过Struts来作的,因此只须要关注具体的业务入口方法就行。这极大的提升了开发的效率和代码的可读性。数据结构
做为Web开发中的三大件,第二大件就是Spring,这个东西太厉害了,直到如今几乎全部的项目中都还在用,并且Spring的生态发展的也是愈来愈完整,愈来愈好。Spring给我印象最深的两点就是 AOP 和 IOC,所谓AOP都知道就是“面向切面”只从字面上来理解都以为很简单,可是要在使用过程当中真正使用切面这个技术,对于刚参加工做的我来讲,在当时无疑是要攻克的一个大难题。而后是IOC,“依赖注入”或者叫“控制反转”,我我的更偏向于“依赖注入”这个解释,但当时大多数人都偏向于“控制反转”这个词,我就纳闷了,怎么样的控制反转,是谁控制谁?又是谁反转了?而“依赖注入”理解起来就太容易了,按照字面意思就是一个对象中,须要用到另外一个对象,即在 A 对象中须要用到 B对象的某些功能,就是A依赖于B,在Spring中的作法就是B做为A的一个私有变量。框架
三大件的最后一个就是Hibernate了,其实在这三大件中,Hibernate是我最不喜欢的,也是我认为最没用的一个。可是在当时几乎全部的人都称赞Hibernate 的OOM思想。虽然我也挺佩服Hibernate的设计思想,可是我仍是更喜欢写直观的SQL,由于我以为本身写SQL就有一种一切尽在本身的掌控中的感受。我相信在当时确定不止我一我的被Hibernate的一级缓存,二级缓存绕的晕头转向。直到后来,我被调到了报表组去作报表,我对Hibernate的好感几乎所有失去了,个人直觉告诉我,Hibernate定将成为历史而被开发人员抛弃。这么多年过去了,我不知道如今还有多少人在用Hibernate?若是你还在用,那你必定是个念旧的人。模块化
在Struts、SPring、Hibernate在当时简称为SSH框架,市面上几乎全部的公司都在用SSH这套框架,因此当我打算跳槽的时候,SSH就是必备技能。甚至在当时出现这样一种状况:只要你熟悉SSH框架,全部的公司随你挑。学习
为了更高的工资,我固然不会放过SSH框架的学习,因而我开始天天晚上研究SSH的思想、核心功能、用法以及注意点。后来开始慢慢的尝试阅读SSH的源码。固然以后骄傲的我天然是跳槽了,而就在那一年,一年以内,我跳槽了七家公司。工资也是翻了一倍又翻一倍。设计
说道SSH这三个开源框架,我不得不称赞Spring的优秀,Spring功能模块化清晰,即插即用的模块化设计,使用简单,而极大的提升开发效率。以致于在后来的发展中,Spring几乎一统江湖。而Struts和Hibernate则从历史的大舞台惨淡的落幕了。做为典型的反面教材,Hibernate的设计思想无疑是优秀的,偏偏也正是由于它的设计思想,使其设计过于臃肿,在单服务的年代,数据结构没有如今这么复杂,数据量也没有如今这么庞大的时候,是有其必然的历史使命。但随着信息的爆炸,业务结构也愈来愈复杂,Hibernate显然就不能适应当前的生产须要了。xml
很长一段时期,作Java开发,就是作SSH开发。