Spring 入门(一) ——Spring设计之路的开始
本文转载自水门-kay的博客,博文地址:https://my.oschina.net/kaywu123/blog/610825
看了水门-kay的博文,觉得写的很好,尤其是开头部分(后面的部分设计到了具体的spring知识,需要慢慢消化),怕以后找不到了,所以转载过来,留存一份,原文的内容很多,我只取了开头的一部分,如果想看原文,请点击上面水门-kay博文的地址。
一切都是从Bean开始的
在1996年,Java还只是一个新兴的、初出茅庐的编程语言。人们之所以关注她仅仅是因为,可以使用Java的
Applet来开发Web应用。但这些开发者很快就发现这个新兴的语言还能做更多的事情。与之前的所有语言不同,Java
让模块化构建复杂的系统成为可能(当时的软件行业虽然在业务上突飞猛进,但当时开发用的是传统的面向过程开发
思想,软件的开发效率一直踟蹰不前。伴随着业务复杂性的不断加深,开发也变得越发困难。其实,当时也是面向对
象思想飞速发展的时期,她在80年代末被提出,成熟于90年代,现今大多数编程语言都是面向对象的,当然这是后话
了)。他们为Applet而来,为组件化而留。这便是最早的Java。
同样在这一年的12月,Sun公司发布了当时还名不见经传但后来人尽皆知的JavaBean 1.00-A规范。早期的
JavaBean规范针对于Java,她定义了软件组件模型。这个规范规定了一整套编码策略,使简单的Java对象不仅可以被
重用,而且还可以轻松地构建更为复杂的应用。尽管JavaBean最初是为重用应用组件而设计的,但当时他们却是主要
用作构建窗体控件,毕竟在PC时代那才是主流。但相比于当时正如日中天的Delphi、VB和C++,他看起来还是太简易
了,以至于无法胜任任何”实际的”工作。
复杂的应用通常需要诸如事物、安全、分布式等服务的支持,但JavaBean并未直接提供。所以到了1998年3
月,Sun发布了EJB 1.0规范,该规范把Java组件的设计理念延伸到了服务器端,并提供了许多必须的企业级服务,但
他也不再像早期的JavaBean那么简单了。实际上,除了名字,EJB Bean已经和JavaBean 没有任何关系了。
尽管现实中有很多系统是基于EJB构建的,但EJB从来没有实现它最初的设想:简化开发。EJB的声明式编程模型的
确简化了很多基础架构层面的开发,例如事务和安全;但另一方面EJB在部署描述符和配套代码实现等方面变得异常
复杂。随着时间的推移,很多开发者对EJB已经不再抱有幻想,开始寻求更简洁的方法。
现在Java组件开发理念重新回归正轨。新的编程技术AOP和DI的不断出现,他们为JavaBean提供了之前EJB才能拥
有的强大功能。这些技术为POJO提供了类似EJB的声明式编程模型,而没有引入任何EJB的复杂性。当简单的JavaBean
足以胜任时,人们便不愿编写笨重的EJB组件了。
客观地讲,EJB的发展甚至促进了基于POJO的编程模型。引入新的理念,最新的EJB规范相比之前的规范有了前所
未有的简化,但对很多开发者而言,这一切的一切都来得太迟了。到了EJB 3规范发布时,其他基于POJO的开发架构
已经成为事实的标准了,而Spring框架也是在这样的大环境下出现的。
代码简洁之路
RodJohnson的思考
Rod Johnson这位澳大利亚的Java大师,很难想象,他除了在悉尼大学获得计算机学士学位以外还获得了音乐的博
士学位,或许正是他音乐的细胞成就了Spring独特简约和优雅。他在1996年就踏足Java开发,并且在C++方面也已经
有了很深厚的造诣。他常年从事保险、银行等企业的开发,是一个一切从现实出发的设计者以及勇敢的创新者。
Rod Johnson在2002年编著的《Expert One-to-One J2EE Design and Development》一书中,对EJB框架的臃肿、
低效、脱离现实等种种现状提出了质疑,并积极寻求革新之道。以此书为指导思想,他编写了interface21框架,这
是一个力图冲破Java EE传统开发困境,从实际需求出发,着眼于轻便、灵巧,易于开发、测试和部署的轻量级开发
框架。Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了
Spring 1.0正式版。同年他又推出了另一部堪称经典的力作《ExpertOne-to-One J2EE Development without
EJB》,该书在Java世界掀起了轩然大波,不断地改变着Java开发者程序设计和开发的思考方式。在该书中,作者根
据自己多年丰富的实践经验,对EJB的各项笨重臃肿的结构进行了逐一的分析和否定,并分别以简洁实用的方法代
替。可以说,这本书中的代码诞生了Spring Framework。借此,Rod Johnson也奠定了他在Java世界中大师级人物的
地位。
设计伊始
Spring 是为解决企业级应用开发的复杂性而设计,她可以做很多事。但归根到底支撑Spring的仅仅是少许的基本
理念,而所有地这些的基本理念都能可以追溯到一个最根本的使命:简化开发。这是一个郑重的承诺,其实许多框架
都声称在某些方面做了简化。
而Spring则立志于全方面的简化Java开发。对此,她主要采取了4个关键策略:
1,基于POJO的轻量级和最小侵入性编程;
2,通过依赖注入和面向接口松耦合;
3,基于切面和惯性进行声明式编程;
4,通过切面和模板减少样板式代码;
而他主要是通过:面向Bean、依赖注入以及面向切面这三种方式来达成的。
还没有评论,来说两句吧...