當(dāng)音樂(lè)學(xué)博士搞起編程坐求,用一本書改變了Java世界蚕泽!

前言

說(shuō)到Spring,也許現(xiàn)在的開發(fā)者們最先想到的是 Josh Long

file

超快的語(yǔ)速與現(xiàn)場(chǎng)代碼能力桥嗤,讓很多Java開發(fā)者折服须妻。

然后Spring的歷史上,最傳奇的還是要數(shù)其創(chuàng)始人:Rod Johnson泛领!

先不說(shuō)別的荒吏,看到他的學(xué)歷,你就震驚的了渊鞋,悉尼大學(xué)的音樂(lè)學(xué)博士绰更!不要驚訝瞧挤,不是計(jì)算機(jī)!

也許就是因?yàn)檫@樣一顆理性思維與藝術(shù)細(xì)胞結(jié)合的禿頂大佬儡湾,才能造就Spring這樣的產(chǎn)物吧特恬。

file

Rod Johnson

Rod Johnson,就是上圖這位頭頂略微地中海的男子徐钠,但是禿腦袋瓜并沒(méi)有讓Rod Johnson變得難看癌刽,好幾個(gè)同學(xué)一致認(rèn)為這家伙長(zhǎng)得很酷。

按照他身邊的密友所描述的尝丐,Rod Johnson平日里看上去就像是一個(gè)典型的英國(guó)紳士显拜,雖然他好像出生在澳大利亞,但是現(xiàn)在住在倫敦爹袁。說(shuō)起話來(lái)也是一板一眼讼油,有條有理。字正腔圓而略有點(diǎn)尖的口音讓人聽起來(lái)特別清楚呢簸。

大多數(shù)人都認(rèn)為Rod Johnson似乎天生缺少一樣?xùn)|西:幽默感矮台。但實(shí)際上看看下面這端開場(chǎng)白:

回到2001年,當(dāng)我寫下第一行代碼時(shí)根时,那些代碼并沒(méi)有放到GitHub瘦赫,沒(méi)放在上面是因?yàn)镚itHub當(dāng)時(shí)不存在,所以我想Spring應(yīng)該比Git老三四歲...

讓人不禁宛然一笑蛤迎,Rod Johnson也跟其他程序員一樣是個(gè)挺可愛(ài)的人吧确虱。

file

輪子理論

提到Rod Johnson,大家還總會(huì)想起輪子理論替裆。
所謂輪子理論校辩,就是指:不要重復(fù)發(fā)明輪子寸谜,這是西方國(guó)家的一句諺語(yǔ)读规,原話是:Don't Reinvent the Wheel。意思是企業(yè)中任何一項(xiàng)工作實(shí)際上都有人做過(guò)赘娄,我們所需要做的就是找到做過(guò)這件事情的人把鉴。拿到軟件領(lǐng)域中就是指有的項(xiàng)目或功能故黑,別人已經(jīng)做過(guò),我們需要用的時(shí)候庭砍,直接拿來(lái)用即可场晶,而不要重新制造。

Rod Johnson想告訴我們怠缸,Spring就是在不重復(fù)發(fā)明輪子的理念及指導(dǎo)原則上做起來(lái)诗轻。

于是一夜之間,隨著Spring在全世界的風(fēng)風(fēng)火火揭北,特別是吹到我們祖國(guó)的時(shí)候扳炬,也許是愛(ài)屋及烏的原因吧吏颖,輪子理論也被眾多的Spring粉絲當(dāng)成做人做事做程序的信條及原則。

Spring與Expert One on one J2EEDevelopment without EJB

Spring鞠柄,可以說(shuō)就像是Rod Johnson的代名詞一樣侦高,大家對(duì)Rod Johnson印象最深的成就自然是SpringFramework和Expert One on one J2EEDevelopment without EJB嫉柴。

Java從誕生之日到如今經(jīng)歷了風(fēng)風(fēng)雨雨數(shù)十年厌杜,從低谷到高峰,JAVA之所以是世界上最受歡迎的開發(fā)語(yǔ)言之一计螺,Spring框架起到了非常重要的作用夯尽。

當(dāng)時(shí)間還停在21世紀(jì)初,Java EE的整個(gè)系統(tǒng)框架處在臃腫登馒、低效匙握、脫離現(xiàn)實(shí)的種種現(xiàn)狀之中,將其進(jìn)行輕量化成為業(yè)內(nèi)的一致的呼聲陈轿,此時(shí)Rod Johnson就像一顆璀璨的明珠一樣橫空出世圈纺,積極尋求探索革新之道。

Rod Johnson最開始在2000年為倫敦金融界提供獨(dú)立咨詢業(yè)務(wù)時(shí)曾經(jīng)寫了一個(gè)簡(jiǎn)單的框架麦射,以此為基礎(chǔ)他編寫了interface21框架蛾娶,這是一個(gè)力圖沖破Java EE傳統(tǒng)開發(fā)的困境,從實(shí)際需求出發(fā)潜秋,著眼于輕便蛔琅、靈巧,易于開發(fā)峻呛、測(cè)試和部署的輕量級(jí)開發(fā)框架罗售。可以說(shuō)這就是Spring的前身钩述,Rod Johnson當(dāng)時(shí)的觀點(diǎn)就是 :如何讓應(yīng)用程序能以超出當(dāng)時(shí)大眾所慣于接受的易用性和穩(wěn)定性與J2EE平臺(tái)上的不同組件合作寨躁。

Spring框架即以interface21框架為基礎(chǔ),經(jīng)過(guò)重新設(shè)計(jì)牙勘,并不斷豐富其內(nèi)涵朽缎。最終于2004年3月24日,發(fā)布了1.0正式版谜悟。

配合Spring的誕生话肖,Rod Johnson在同年編著了Expert one on one J2EE design and development一書,堪稱經(jīng)典葡幸,直至今日最筒,還有不少莘莘學(xué)子將其視為Spring必讀寶典。

file

這本書甫一面世蔚叨,就在Java世界掀起了軒然大波床蜘,不斷改變著Java開發(fā)者程序設(shè)計(jì)和開發(fā)的思考方式辙培,影響至今。Rod Johnson根據(jù)自己多年豐富的實(shí)踐經(jīng)驗(yàn)邢锯,對(duì)EJB的各種笨重臃腫的結(jié)構(gòu)進(jìn)行了逐一的分析和否定扬蕊,并分別以簡(jiǎn)潔實(shí)用的方式替換之。

Spring1.0版本發(fā)布之后丹擎,Spring框架在Java社區(qū)里變得異常流行尾抑,當(dāng)然這也要部分的歸功于它不錯(cuò)的文檔功能和詳盡的參考文獻(xiàn),特別是對(duì)于一個(gè)開源項(xiàng)目而言尤其如此蒂培。

Spring框架的一個(gè)重要設(shè)計(jì)目標(biāo)就是更容易地與已有的J2EE(現(xiàn)在稱之為JavaEE或JEE)標(biāo)準(zhǔn)和商用工具整合再愈。

也正因此,Rod Johnson奠定了自己的江湖地位护戳,成為一個(gè)改變Java世界的大師級(jí)人物翎冲。

本文首發(fā):https://blog.didispace.com/hero-spring-rod-johnson/

版本變遷

Spring 幾乎已經(jīng)成為現(xiàn)在每一位 Java 開發(fā)人員都耳熟能詳?shù)拈_發(fā)框架,不論你是一名初出茅廬的程序員還是經(jīng)驗(yàn)豐富的老司機(jī)媳荒,都會(huì)對(duì)其有一定的了解或使用經(jīng)驗(yàn)抗悍。在現(xiàn)代企業(yè)級(jí)應(yīng)用架構(gòu)中,Spring 技術(shù)棧幾乎成為了 Java 語(yǔ)言的代名詞钳枕。我們不妨從最初的 Spring 開始缴渊,看看它為什么能夠橫掃千軍,一統(tǒng)江湖么伯!

Spring版本變遷:

  • 自2004年Spring1.0發(fā)布之后疟暖,Spring 框架迅速發(fā)展,不斷進(jìn)化田柔。1.0的出現(xiàn)徹底改變了開發(fā)企業(yè)級(jí)Java應(yīng)用程序的方式俐巴。 Spring的依賴注入與聲明式事務(wù)意味著組件之間再也不存在緊耦合,再也不用重量級(jí)的EJB了硬爆。

  • 2006 年 10 月欣舵,發(fā)布Spring 2.0 ,具有可擴(kuò)展的 XML 配置功能缀磕,用于簡(jiǎn)化 XML 配置缘圈,支持 Java 5,額外的 IoC 容器擴(kuò)展點(diǎn)袜蚕,支持動(dòng)態(tài)語(yǔ)言糟把。更小、更簡(jiǎn)單易懂的配置文件讓Spring本身更便于使用

  • 2007 年 11 月 牲剃,Interface21 項(xiàng)目更名SpringSource遣疯,同時(shí)發(fā)布了 Spring 2.5,支持 Java 6 / Java EE 5凿傅,支持注釋配置缠犀,classpath 中的組件自動(dòng)檢測(cè)和兼容 OSGi 的 bundle数苫。讓我們有了更優(yōu)雅的面向注解的依賴注入模型(即@Component和@Autowired注解),以及面向注解的Spring MVC編程模型辨液。不用再去顯式地聲明應(yīng)用程序組件了虐急,也不再需要去繼承某個(gè)基礎(chǔ)的控制器類了。

  • 2009 年 12 月滔迈,Spring 3.0 發(fā)布止吁,具有許多重要特性,如重組模塊系統(tǒng)亡鼠,支持 Spring 表達(dá)式語(yǔ)言赏殃,基于 Java 的 bean 配置(JavaConfig)敷待,支持嵌入式數(shù)據(jù)庫(kù)(如 HSQL间涵,H2 和 Derby),模型驗(yàn)證/ REST 支持和對(duì) Java EE 的支持榜揖。XML被取代勾哩,終于可以寫出一個(gè)沒(méi)有任何XML配置的Spring應(yīng)用程序。

  • 2013 年 12 月举哟,Pivotal(2013 年 4月思劳,VMware 和 EMC 通過(guò) GE 投資創(chuàng)建了一家名為 Pivotal 的合資企業(yè)。所有的 Spring 應(yīng)用項(xiàng)目都轉(zhuǎn)移到了 Pivotal) 宣布發(fā)布 Spring 框架 4.0妨猩。包含了對(duì)Java 8 的全面支持潜叛,更高的第三方庫(kù)依賴性(groovy 1.8+,ehcache 2.1+壶硅,hibernate 3.6+等)威兜,Java EE 7 支持,groovy DSL for bean 定義庐椒,對(duì) websockets 的支持以及對(duì)泛型類型的支持作為注入 bean 的限定符椒舵。

  • 2017年9月,Spring 5.0 GA版本發(fā)布约谈,開始支持JDK 8和Java EE 7笔宿,同時(shí)兼容JDK9。全面支持Servlet 3.1棱诱,還引入了一個(gè)全新的模塊Spring WebFlux用于替代老話的 spring-webmvc泼橘;對(duì)Kotlin也有了更好的支持。

  • 而目前迈勋,最新的是5.3.2 GA版本炬灭。

具體版本可見:https://spring.io/projects/spring-framework#learn

Spring在不同的領(lǐng)域不斷發(fā)展:移動(dòng)開發(fā),社交API集成粪躬、安全管理担败、NoSQL數(shù)據(jù)庫(kù)昔穴、云計(jì)算和大數(shù)據(jù)等等都是它正在涉足和創(chuàng)新的領(lǐng)域,使其前景更加廣闊提前,甚至已經(jīng)形成與傳統(tǒng)的JavaEE平臺(tái)分庭抗禮之勢(shì)吗货。

file

離開

江湖,有聚必有散狈网。

2007 年宙搬,SpringSource 從基準(zhǔn)資本獲得了 A 輪融資(1000萬(wàn)美元)。在此期間SpringSource也收購(gòu)了多家公司拓哺,如Hyperic勇垛,G2One 等。

但是等到了2009年8月士鸥,SpringSource反倒是以 4.2 億美元被 VMWare 收購(gòu)闲孤。

而在3年后的2012年7月,Rod Johnson就離開了他一手創(chuàng)建的Spring團(tuán)隊(duì)烤礁。

或許我們可以這樣想讼积,如果當(dāng)初SpringSource 沒(méi)有被VMWare 收購(gòu),是不是Rod Johnson 就不會(huì)離開團(tuán)隊(duì)脚仔,是不是現(xiàn)在的Spring會(huì)更好勤众?答案我們自然不得而知。

Rod Johnson當(dāng)年在SpringSource官方博客上公布這一消息時(shí)聲稱SpringSource將成為VMware下屬的一個(gè)部門鲤脏,而他將仍是SpringSource的領(lǐng)導(dǎo)者们颜。他當(dāng)時(shí)對(duì)未來(lái)的展望是:

此次決定是很自然而符合邏輯的:這將帶來(lái)更多的新技術(shù),并且對(duì)Spring框架以及Spring社區(qū)都有好處猎醇。

我很興奮窥突。希望你也是。這將極其有趣姑食。

Spring框架將繼續(xù)提供優(yōu)質(zhì)的企業(yè)級(jí)Java支持波岛。我們從關(guān)注開發(fā)者如何創(chuàng)建和使用應(yīng)用,到關(guān)注他們?nèi)绾尾渴鸷瓦\(yùn)行企業(yè)級(jí)應(yīng)用音半;為此我們創(chuàng)建了dm Server和tc Server则拷。我們收購(gòu)Hyperic也是為了改善開發(fā)者管理企業(yè)級(jí)應(yīng)用的方法。

與VMware的合作中曹鸠,我們計(jì)劃創(chuàng)建一個(gè)簡(jiǎn)單煌茬,集成,創(chuàng)建-運(yùn)行-管理合一的數(shù)據(jù)中心彻桃、私有云和公共云的解決方案坛善。這個(gè)方案將融合應(yīng)用架構(gòu)的知識(shí),連帶中間件以及管理控件,確保一個(gè)虛擬環(huán)境在部署過(guò)程中以及運(yùn)行時(shí)的最大效率及彈性眠屎。這是一個(gè)PaaS剔交,建立在你已知的技術(shù)之上,從而最大的減少花費(fèi)與復(fù)雜度改衩。這是一個(gè)圍繞開源岖常、可移植的中間件技術(shù)的解決方案,既可以在傳統(tǒng)數(shù)據(jù)中心的Java EE應(yīng)用服務(wù)器上運(yùn)行葫督,又可以在如Amazon EC2之類的彈性云上運(yùn)行竭鞍,也可以在VMware平臺(tái)上運(yùn)行。

與VMware的vSphere以及其他云技術(shù)一起橄镜,我們將在框架和基礎(chǔ)設(shè)施上帶來(lái)一個(gè)全新的體驗(yàn)偎快。SpringSource的應(yīng)用框架、服務(wù)器及管理軟件將成為VMware平臺(tái)的眼睛和耳朵洽胶。

SpringSource的下一步工作將是這些新的挑戰(zhàn):基于我們的Build/Run/Manage(創(chuàng)建運(yùn)行管理)系統(tǒng)晒夹,提供從桌面端到云端的最佳解決方案。讓百萬(wàn)Java開發(fā)者都能享受到云計(jì)算帶來(lái)的好處妖异。

可能他當(dāng)時(shí)心里想的是作為Java領(lǐng)域的重要廠商惋戏,在加入VMware后领追,其Java開發(fā)經(jīng)驗(yàn)將與VMware的虛擬化平臺(tái)相結(jié)合他膳,增強(qiáng)其在企業(yè)服務(wù)市場(chǎng)中的競(jìng)爭(zhēng)力。另外绒窑,SpringSource在全球大型企業(yè)中的廣泛客戶資源也能夠讓VMware受益棕孙。不管怎么說(shuō),似乎從現(xiàn)在的結(jié)果來(lái)看些膨,Spring也做得不錯(cuò)蟀俊,沒(méi)有辜負(fù)Rod Johnson當(dāng)初的一番期望。

傳奇現(xiàn)今

現(xiàn)在的Rod Johnson成為了一個(gè)天使投資人订雾,同時(shí)也是多個(gè)公司的董事(例如Neo Technology肢预,elastic,Meteor和Hazelcast等著名的開源公司)洼哎,早已走上人生巔峰烫映。同時(shí)他依然還是經(jīng)常會(huì)在技術(shù)大會(huì)上做演講,游走在世界各地噩峦,為后來(lái)者傳授各種技術(shù)經(jīng)驗(yàn)及想法锭沟。

在去年10月份的SpringOne Platform大會(huì)上,Rod Johnson還特地做了一個(gè)關(guān)于Spring18歲的演講识补,也許他的樣子變了族淮,但是講起Spring,他還是像講起自己的孩子一般滔滔不絕,Rod Johnson分享了Spring的起源祝辣、歷史贴妻,總結(jié)了一些Spring框架發(fā)展過(guò)程的經(jīng)驗(yàn)教訓(xùn):

  • Spring的歷史起源
  • Lesson 1: Fairy tales can offer useful lessons 寓言故事能提供有用的教訓(xùn)
  • Lesson 2: Need Clear, Shared Values 需要清晰,共有的價(jià)值
  • Lesson 3: Know where you're going 明確方向
  • Lesson 4: Quality beats quantity in a team 打造團(tuán)隊(duì)寧缺毋濫
  • Lesson 5: Market and sell your technical solution 營(yíng)銷你的技術(shù)方案
  • Lesson 6: Other people have great ideas. Borrow them but acknowledge their work 認(rèn)可借鑒別人的好點(diǎn)子
  • Lesson 7: The developers you want need autonomy 開發(fā)者需要自治
  • Lesson 8: Question the "enterprise" mindset 質(zhì)疑“企業(yè)級(jí)”觀念
  • Lesson 9: Some Spring Advice 一些Spring的建議
  • Next For Me: Atomist - A Framework for Development and Delivery 我的下一站:Atomist——一個(gè)關(guān)于開發(fā)與交付的框架
  • Lesson 10: Raising software is like raising a child 開發(fā)軟件像養(yǎng)育一個(gè)孩子

有興趣的讀者可以自行查看蝙斜,視頻地址如下:https://www.bilibili.com/video/av200511420

你知不知道Rod Johnson揍瑟?

你有沒(méi)有看過(guò)Expert One on one J2EEDevelopment without EJB?

歡迎留言分享你的感受乍炉!

歡迎關(guān)注我的公眾號(hào):程序猿DD绢片,獲得獨(dú)家整理的免費(fèi)學(xué)習(xí)資源助力你的Java學(xué)習(xí)之路!另每周贈(zèng)書不停哦~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末岛琼,一起剝皮案震驚了整個(gè)濱河市底循,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌槐瑞,老刑警劉巖熙涤,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異困檩,居然都是意外死亡祠挫,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門悼沿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)等舔,“玉大人,你說(shuō)我怎么就攤上這事糟趾』胖玻” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵义郑,是天一觀的道長(zhǎng)蝶柿。 經(jīng)常有香客問(wèn)我,道長(zhǎng)非驮,這世上最難降的妖魔是什么交汤? 我笑而不...
    開封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮劫笙,結(jié)果婚禮上芙扎,老公的妹妹穿的比我還像新娘。我一直安慰自己邀摆,他們只是感情好纵顾,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著栋盹,像睡著了一般施逾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天汉额,我揣著相機(jī)與錄音曹仗,去河邊找鬼。 笑死蠕搜,一個(gè)胖子當(dāng)著我的面吹牛怎茫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播妓灌,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼轨蛤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了虫埂?” 一聲冷哼從身側(cè)響起祥山,我...
    開封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掉伏,沒(méi)想到半個(gè)月后缝呕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡斧散,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年供常,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸡捐。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡栈暇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出闯参,到底是詐尸還是另有隱情瞻鹏,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布鹿寨,位于F島的核電站,受9級(jí)特大地震影響薪夕,放射性物質(zhì)發(fā)生泄漏脚草。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一原献、第九天 我趴在偏房一處隱蔽的房頂上張望馏慨。 院中可真熱鬧,春花似錦姑隅、人聲如沸写隶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)慕趴。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冕房,已是汗流浹背躏啰。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留耙册,地道東北人给僵。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像详拙,于是被迫代替她去往敵國(guó)和親帝际。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容