3

Spring揭秘(让Spring之父Rod Johnson拍案叫绝的原创经典)

 2 years ago
source link: http://product.china-pub.com/195969
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【插图】 1 2 3 4 5 6

chatu

 

让Spring之父Rod Johnson拍案叫绝的原创经典.

首次全方位深度剖析Spring框架实现原理及其设计理念..

由国内资深架构师亲自撰写、在国内开发者社区内引起广泛关注和如潮好评

生动通俗地演绎系统设计之美、架构设计之道...

    书籍
    计算机书籍
本书以幽默生动的语言、辅以有趣的故事和典故,循循善诱地阐述了Spring框架的方方面面。针对Spring框架的主要功能以及开发者们遇到最多的问题,首先介绍问题的相关背景,然后逐条进行深度剖析,最后通过分析来引入Spring框架可以提供的最佳解决方案。虽言Spring,却不局限于Spring,本书向读者展现了更宽广的软件开发的世界!.

本书非常适合Java开发人员阅读和参考。...
王福强,资深软件开发专家和系统架构师,原任花旗软件(大连)资深软件工程师,现任阿里巴巴B2B平台技术部架构师。多年来一直专注于Java平台的技术发展,以及一线产品的技术选型和框架设计。拥有多年金融行业软件开发经历,负责过信贷、外汇交易、固定收益等金融系统的 分析、设计、开发、维护、集成、扩展和性能调优等,对各种大型金融机构体系的技术架构和实现有丰富经验和独到的见解。作为国内最早使用Spring的开发者之一,他对Spring的使用、设计和实现原理有着非常深入的了解。在本书中,他与读者分享了多年的Spring开发经验和探索企业级解决方案的心得。...
第一部分 掀起Spring的盖头来.
第1章 Spring框架的由来 2
1.1 Spring之崛起 2
1.2 Spring框架概述 3
1.3 Spring大观园 5
1.4 小结 8
第二部分 Spring的IoC容器
第2章 IoC的基本概念 10
2.1 我们的理念是:让别人为你服务 10
2.2 手语,呼喊,还是心有灵犀 13
2.2.1 构造方法注入 13
2.2.2 setter方法注入 13
2.2.3 接口注入 14
2.2.4 三种注入方式的比较 15
2.3 IoC的附加值 15
2.4 小结 17
第3章 掌管大局的IoC Service Provider 18
3.1 IoC Service Provider的职责 18
3.2 运筹帷幄的秘密——IoC Service Provider如何管理对象间的依赖关系 19
3.2.1 直接编码方式 19

  早期的J2EE平台推出的EJB规范是为了简化分布式应用的开发,并在J2EE平台上为各种企业级服务提供最佳实践。相对于更早以前的诸如CORBA等分布式架构来说,EJB确实使分布式架构得以简化。在当时特定的历史条件下,基于EJB架构的企业级应用的确有其先进性。但是,随着时间的推移,基于EJB架构的企业级应用逐渐暴露出各种形式的不足。于是开发者们开始探索一种新的技术,希望这种技术能弥补EJB的缺陷,一场技术革命就此拉开了序幕。.

  实际上,我们可以从两个方面来看待EJB被“革命”的原因。首先,分布式架构更适用于那些大型的企业级应用,这些应用往往对安全性、可扩展性的要求更高。对于这类大型企业级应用来说,为了获得更重要的功能特性,分布式架构在性能等方面的缺陷是可以容忍的。然而,对于大多数基于J2EE平台的中小型企业级应用来说,分布式架构在性能方面的损失则是完全不可接受的,分布式架构的引入反而会增加开发和维护的难度,甚至导致整个项目失败。颇有讽刺意味的是,恰恰是开发者们早期对EJB架构的过度推崇造成了如今这种难以收拾的局面。EJB本身笨重的编程模型被应用到不合适的场景中,给积重难返的EJB压上了“最后一根稻草”。

  其次,EJB规范本身可看作是为J2EE平台上的各种企业级服务提供的一种最佳实践,但是这一最佳实践实际上并未达到预期效果。实体Bean(Entity Bean)被证明是一种失败的实践,其他种种现象也从各个侧面反映了EJB的缺陷,如整个应用需要绑定到应用服务器、编程模型复杂而笨重、应用本身不易测试等。

  随着EJB自身所暴露的缺陷越来越多,开发者们不再盲目崇拜EJB,而开始对它感到失望。在这种情况下,一场革命在所难免,而燃起这场革命的星星之火的就是Spring。Spring框架提倡一切从实际出发,使用基于POJO的轻量级编程模型推进整个应用的快速开发。通过使用IoC、AOP等先进的技术理念,结合对原有J2EE平台各种企业级服务的抽象和适度集成,Spring框架为Java平台上的企业级开发注入了新鲜的血液。

  从Spring框架身上,纵观,你几乎可以看到整个基于Java平台的软件开发的演变历史;横看,你可以跟踪和捕捉当前业界最先进的理念和软件开发模式。如果是初次踏上Java平台这片领地,沿着Spring框架所展示的路线,你将迅速地领略到整个Java平台的强大魅力;如果你已经在Java平台“征战”多年,Spring框架一定能使你回忆起昔日所经历的“酸甜苦辣”,并更加深切地感受到Spring框架给我们带来的价值。

  本书的主要目的就是和读者朋友一起以轻松愉快的心情饱览整个Spring框架的“无限风光”,让你能够在愉快的旅途之后以全新的状态投入到现实的Java企业级应用开发工作中去。

  关于本书..

  促使我下决心写下这本书的原因很多,但主要可以归结为两点。一个是因为自身在经年的软件开发过程中的所见所闻,当历尽千辛走到Spring阳光下的时候,再回头看看,会发现自己和他人走过的路是多么地泥泞和曲折,而这些现在是完全可以避免的。可是,就算是在2007的项目中,我却依然发现大部分人还是在过去的沼泽中挣扎,所以我想通过这本书传达一种信息,希望人们能够尽快的跳出那片早就应该远离的沼泽。另一个原因则是希望通过对Spring框架的介绍,为大家传达一种业界内先进的理念和开发模式,为国内软件开发过程的改进和开发质量的提高,尽自己的一份力。

  帮助你了解如何使用Spring框架所提供的各种方案来解决开发过程中所遇到的实际问题固然重要,但从Spring框架中汲取更多的“营养”才是我们应该进一步关注的,知其然,知其所以然,然后我们才可以在Java开发领域内游刃有余,Spring框架中所展现的开发理念以及方法学等,都应该成为我们日常开发过程中不可或缺的伙伴。所以,本书除了会像其他Spring书籍一样,对Spring框架提供的各种功能和特性进行详尽的讲解,中间还将穿插Spring实现中牵扯的设计模式和最佳实践的分析,以期最大限度地挖掘Spring这座宝藏。

  技术是发展的,但思想却是延续的,当我们借助Spring之船飞渡波澜不惊的水面亦或闯过惊涛骇浪之后,不要忘记,或许某天我们会踏上另一条更好的船舶,但Spring之船所带给我们的那些理念和思想,却应该始终陪伴着我们,激励我们也好,鞭策我们亦善……

  作者在线

  如果在阅读本书的过程中遇到任何疑问或发现任何问题,可通过我的个人网站http://www. spring21.cn/与我取得联系。我会悉心为你解答有关本书的任何问题,虽然这是无偿的,但是我很乐意这样做,因为这正是当初写作本书的初衷。...

  推荐序(一)

  在Spring作为关键词在每一位技术人员简历里面出现的今天,我们可以深刻地体会到Spring的春天真的来了。.

  Spring经过几年的实战和演变,已经不再是一个单纯的体系框架,而代表着轻量级Java开发的规范。在短短几年的发展中,Spring给Java企业级开发带来了无比强大的推动力,让轻量级开发技术飞速发展。在Spring中,简单实现涵盖了一切元素,让我们将Java这门语言的所有特性发挥得淋漓尽致。通过Spring,你不仅可以学到如何应对每个领域的最佳实践,而且可以深入理解Java企业级开发中各层面的体系结构。因而,这简单的背后隐藏着巨大的秘密。

  本书是揭开秘密的一把钥匙。作者借用大量的生活化比喻将Spring各环节的技术概念清晰、简单地展现在读者面前,让众多技术概念不再生硬难懂。同时,本书借助对Spring各项功能的解读,将读者带入Java企业级开发的方方面面,不仅具体讲述了如何应对领域问题,而且还将背后的领域知识关联起来,让我们了解其因果关系和各种实践的差异和不同。更值得称赞的是书中的实例场景非常实用,可见作者的代码精心提取于实战项目,让读者在深入理解概念应用的同时,可以参考实际的使用方法去解决自己项目中同类型的问题,为可行性提供了有力的证明。

  通过阅读,相信读者获得的不仅仅是对Spring的深入理解,而是一种系统化知识的演练,一种开放构架思维的突破,一种解决问题的思路方法。如果你也想将Spring作为关键词放入你的简历之中,那么我相信你需要了解的不仅是如何使用Spring这样简单的问题,还需要知道它背后众多的“秘密”。

  Yanger

  Spring中文论坛创始人,

  现任SpringTag.com运营总监

推荐序(二)

  回顾昔日传统的IT世界里经常有这样两个场景。..

  场景一:大厂垄断。名牌大厂通过一定时间对标准、技术、产品和解决方案的把持,慢慢把小玩家挤出局,做成一家独大的局面。长此以往,对于标准和技术的审视、重构和优化几乎成为象牙塔里的说道,纯粹意义上的技术革新极难付诸实施。

  场景二:杂草场景。最初标准不完善,发展线路不清晰,然后诸多小玩家入场,肆意推崇各类技术点上的终极解决之道,彼此间常漠视或势同水火。结果经年下来,造成众多IT孤岛,需要多层封装转化才可打通,或者干脆残留诸多极难考证的IT化石。

  Java的发展历程很精彩,完全可以就此写本抓人眼球的书。最初有Sun开门立派,独辟蹊径在1998年推出J2EE规范对抗当时如日中天的微软,甫一推出,市场便震惊于其对于企业级解决方案思考的广度和深度。适逢.com风潮,对于J2EE的追捧自然而至,各大厂商也纷纷入围圈地企图瓜分霸权。

  慢慢地,Java世界的发展步调有点前述场景一的味道,EJB 的厚重迂腐,大厂方案中的平台方案绑定,高耦合性以及高端价位,还有其他众多同质解决方案的无序并存,对于各类中小企业乃至高端企业应用都有不堪承受之重,而这些都促使以Apache、JBoss等各路开源方案为代表的草根力量积极质疑反思。

  2002年Rod Johnson的Expert One-on-One J2EE Design and Development一书的出版让很多开发人员心有戚戚焉。作为轻量级企业解决方案的提出者,他不局限于坐而论道,而是迅速通过Spring这个开源框架将其思想付诸实施并接受公众的批评和反馈,利用IOC、 AOP这些思考基石,全面支持JavaEE要求的所有必要功能,凭借自身不断增强的功能和迅速吸纳集成市场其他专项解决方案的能力,Spring已慢慢成为Java企业开发事实上的标准。

  也许其中的意义并不在于草根力量迫使大厂淡出Java世界的霸权争夺,而是让人们看到了一种开放的力量有效地指导技术发展方向,积极容纳各种前沿产品并和谐发展。

  说完Java和Spring,谈回这本书和本书作者阿福。

  有这样一个段子我印象很深刻,有个出名的油画鉴赏家,他一个不太为人知的秘密就是,他常去看还未装裱的作品的侧面,通过画布侧面油漆的厚度和颜色的变化去解读作者花在这个作品的心血和历程。这里做为本书见证人之一,我也分享下本书的侧面像。

  我初识阿福于2004年,那时,他很痴迷于跆拳道,嘴里喊着“阿达”,目视虚空一目标点,然后腿上比划各种上抬角度。但让人惊诧的是,就这个毕业还没满一年的人,写出的Java代码却难得地考究和优雅。渐渐发现,那时的他对各类Java世界活跃元素的追踪热情也丝毫不亚于跆拳道。最初的Spring 1.0刚推出没多久就被他应用到一个日本大型信贷项目的批作业中,去解决各类强耦合问题和事务管理,之后就见他在诸多让一般人抓狂的复杂金融业务系统和场景中,慢慢试验、体会和推广Spring。2006年,他和我们常念叨,市面上真没一本值得推敲的Spring中文书,也没有见一本有份量的一线设计开发人员悉心奉上的心路思考过程。没多久他就辞职闭关,潜心写作该书。只可惜出版业的反应还是慢了一些。

  “本书非常棒!内容全面透彻,很有价值!”.
  ——Rod Johnson,Spring之父
  “生动的语言和严谨的结构,构成了本书最大的特色。……大量生活化的比喻将难以理解的技术概念阐述得如此简单、清晰和易于理解。这不仅会帮助初学者快速掌握Spring现代程序设计,也可以帮助有经验的程序员深入Spring的构件精髓。”
  ——Yanger,Spring中文论坛创始人,SpringTag.com运营总监
  “可以翻成英文版出口的好书,每个使用Spring的团队都应该自备两本,一本堂皇地培训新人,一本给老手们偷偷的温习。”
  ——江南白衣(www.springside.org.cn)..
  “整本书文笔流畅,更不乏幽默与趣味,内容详略得当取舍合理。另外,书中的内容极为全面,如果以后要把书当作参考手册的话,这些内容可以为您提供重要的信息。”
  ——dojo中国,著名开源社区
  本书语言生动幽默,内容全面而精辟,在阐释Spring框架提供的各种功能和特性的同时,介绍了大量在Spring实现中涉及的设计模式和最佳实践,很值得开发人员借鉴和参考。
  —— 中文JAVA技术网...

  第一部分掀起Spring的盖头来

  第1章Spring框架的由来

  1.1 Sprig之崛起

  在中世纪的欧洲,当重装骑兵所向披靡时,哪国的军队中如果没有一支重装骑兵真的会让人笑话的,按照电影《大腕》里的一句话说“你都不好意思跟人打招呼”。应该说,在当时的历史/军事环境下,重装骑兵在军队中确实发挥了不可或缺的作用。有时候,一次关键时刻的重装骑兵冲锋就可以奠定战局的胜利。但是,时过境迁,历史的车轮一直在向前缓缓行进,重装骑兵头上的光环也随之渐趋黯淡,其缺点开始显露无遗。

  重装骑兵代价高昂。一名重装骑兵的装备花费几乎能够武装一小队轻步兵,对于财力不够雄厚的国家来说,维持一支常备的重装骑兵队伍绝非易事。实际上,对于财力雄厚的大国(相当于IT界的IBM、微软)来说,为了减轻财政上的压力,通常也是将这部分花销尽量摊派给贵族。

  兵种自身限制太多。沉重的盔甲以及一整套装备使得重装骑兵的机动性和灵活性大打折扣,在正式投入战斗之前,重装骑兵需要很长时间的列装和部署,对于瞬息万变的战场形势来说,某些情况下,这等同于自杀。

  发挥作用的场景有限。纵使各翼军队能够掩护重装骑兵完成部署,但如果战场地形不适合重装骑兵冲锋,那也就无法让他们大显身手,前期的准备或者战斗掩护就更是得不偿失。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK