「spring」Spring的前世今生,作者与由来

「spring」Spring的前世今生,作者与由来这位仁兄很牛,出生于澳大利亚,毕业于悉尼大学计算机系。到这还是平平无奇,但是他还有另一个身份,音乐学的博士。

大家好,欢迎来到IT知识分享网。

关于spring的作者

spring的缔造者Rod Johnson。这位仁兄很牛,出生于澳大利亚,毕业于悉尼大学计算机系。到这还是平平无奇,但是他还有另一个身份,音乐学的博士。因为自己爱好音乐,便攻读了音乐学的博士。果然编程的极致是艺术,而艺术相通的。

「spring」Spring的前世今生,作者与由来

一本名为Expert one-on-one J2EE Development without EJB的书。在本书中,他提出了一种基于普通Java类(POJO)和依赖注入的简单解决方案。他编写了超过30,000行基础设施代码,其中包括许多可重用的Java接口和用于开发应用程序的类。

「spring」Spring的前世今生,作者与由来

还没有读过的小伙伴建议精读一下,虽然距今年代久远,但其中不乏J2EE, 架构等经典之作,更是Spring整体框架的设计之源,包括后续的IOC思想之由来等。Rod随后创办Interface21, 开创Spring框架,而之后的Spring如日中天,无需多言。笔者曾戏称:

“In the real world, J2EE ONLY define Interface, Spring will implement”.

而Rod在Java领域的影响已经远远超越了Spring本身的范畴。

2003年2月左右,Rod,Juergen和Yann开始合作开展Spring项目。给出了“Spring”这个名称,因为它意味着在传统J2EE的“Winter”之后重新开始。

Spring之前的历史

在Spring框架没有开发出来时,Java EE是以Sun公司(已经被Oracle公司收购,不复存在)所制定的EJB(Enterprise Java Bean)作为标准的。

在“遥远”的EJB年代,开发一个EJB需要大量的接口和配置文件,直至EJB 2.0的年代,开发一个EJB还需要配置两个文件,其结果就是配置的工作量比开发的工作量还要大。

其次EJB是运行在EJB容器中的,而Sun公司定义的JSP和Servlet却是运行在Web容器中的,于是你可以想象得到,你需要使用Web容器去调用EJB容器的服务。

这就意味着存在以下的弊端:需要增加调用的配置文件才能让Web容器调用EJB容器;与此同时需要开发两个容器,非常多的配置内容和烦琐的规范导致开发效率十分低下,这非常让当时的开发者诟病;对于Web容器调用EJB容器的服务这种模式,注定了需要通过网络传递,造成性能不佳;对于测试人员还需要了解许多EJB烦琐的细节,才能进行配置和测试,这样测试也难以进行。

就在大家诟病EJB的时候,Rod Johnson在其著名的著作Expert One-on-One J2EE Design and Development中提出了Spring的概念。按书中的描述,Spring是如下的框架。

We believe that:

J2EE should be easier to use.

It is best to program to interfaces, rather than classes. Spring reduces the complexity cost of using interfaces to zero.

JavaBean offers a great way of configuring applications.

OO design is more important than any implementation technology, such as J2EE.

Checked exceptions are overused in Java. A platform should not force you to catch exceptions you are unlikely to recover from Testability is essential and a platform such as spring should help make your code easier to test.

We aim that:

Spring should be a pleasure to use.

Your application codes should not depend on Spring APIs.

Spring should not compete with good existing solutions, but should foster integration.

然后在2004年由Rod Johnson主导的Spring项目推出了1.0版本,这彻底地改变了Java EE开发的世界,很快人们就抛弃了繁重的EJB的标准,迅速地投入到了Spring框架中,于是Spring成为了现实中Java EE开发的标准。

Spring以强大的控制反转(IoC)来管理各类Java资源,从而降低了各种资源的耦合;并且提供了极低的侵入性,也就是使用Spring框架开发的编码,脱离了Spring API也可以继续使用。

而Spring的面向切面的编程(AOP)通过动态代理技术,允许我们按照约定进行配置编程,进而增强了Bean的功能,它擦除了大量重复的代码,如数据库编程所需大量的try…catch…finally…语句以及数据库事务控制代码逻辑,使得开发人员能够更加集中精力于业务开发,而非资源功能性的开发。

Spring还提供许多整合了当时非常流行的框架的模板,如持久层Hibernate的HibernateTemplate模板、iBATIS的SqlMapClientTemplate模板等,极大地融合并简化了当时主流技术的使用,使得其展示了强有力的生命力,并延续至今。

值得一提的是,EJB 3.0的规范也引入了Spring的理念,而且整合了Hibernate框架的思想,但是也未能挽回其颓势,主要原因在于它的规范还是比较死板,而且比较难整合其他开源框架。其次,它运行在EJB容器之中,使用上还是比较困难,性能也不高。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/88614.html

(0)
上一篇 2024-10-13 21:15
下一篇 2024-10-14 08:26

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信