版权与免责声明:本博客文章翻译自《Spring in action》第三版,原书版权归原作者及其出版单位所有,本人仅出于个人兴趣,翻译其中内容。本人不以盈利为目的,放置在博客中仅为了方便网友阅读原作遇到困难时参考。本人严正声明,本人并不拥有翻译该作品之正当权力,因此严禁他人转载,亦不保证作品之正确性;如侵犯您的权益,望告知,即行关闭。
翻译声明:本人目前计划每天翻译两页,且不做任何工期承诺,之前未在网上发现类似内容,如已有相似内容,望告知,也省得我翻译了。
Chapter 1 Piece 1
本章涵盖:
- 浏览Spring的核心模块
- 对应用对象进行解耦
- 利用AOP管理横向关注点
- Spring的bean容器
事情还得从一颗豆子(bean)说起。
1996年,当时的Java还只是一个新兴的、激动人心的、即将流行的平台。大量的开发者便涌向这门语言,因为他们见识到了如何用applets创建丰富和动态的web应用。这些开发者很快发现,除了能让杂技动画人物活动起来之外,这门陌生的新语言还可以做很多事。与之前任何语言都不同的是,Java让编写复杂的、由松散部件组成的应用成为可能。他们因为applets而接触Java,但是让他们最终决定留下来的是Java的组件特性。
在这一年的12月,Sun公司发布了JavaBeans 1.00-A规范。JavaBeans定义了一个针对Java的软件组件模型。这个规范定义了一组编码规范,使简单Java对象不仅能够得到重用,并且能轻松嵌入到更加复杂的应用程序当中。尽管JavaBeans是作为定义可重用应用组件的通用方法而推出的,却最终主要用于构建用户界面组件。因为它们似乎过于简单了,以至于根本无法应付任何“实际”工作。企业级开发者们的需求并未得到满足。
复杂的应用程序,通常需要诸如事物支持、安全性和分布式计算这样的服务,但是JavaBeans规范并未直接提供。于是在1998年三月,Sun又推出了企业级JavaBeans(EJB)规范 的1.0版本。这份规范将Java组件的理念扩展到了服务端,提供了需求非常紧迫的企业级服务,但是却丧失了早期JavaBeans规范的简洁性。除了名字之外,EJB与早期的JavaBeans规范大相径庭。
尽管确实有很多成功的应用程序基于EJB,但是EJB从未达到它的预期目标:降低企业级应用程序的开发复杂度。不错,EJB的声明式编程范式简化了开发过程的各个基础层面,比如事物和安全性。但是,另一方面,托管部署描述符和配套代码(家庭和远程/本地接口)等工作又增加了开发难度。慢慢的,许多开发者不再对EJB抱有期望。因此,近几年它的受欢迎程度不断降低,促使开发者寻求更简便的方法。
现在,Java组件开发终于回到了正轨。新的编程技巧,包括面向方面编程(AOP)和依赖注入(DI),使JavaBeans拥有之前EJB提供的大部分功能。这些技术摒弃了EJB的复杂度,为普通简单Java对象(POJOs)保留了传统的EJB的声明式编程范式。你无需再编写笨重的EJB组件,简单的JavaBean足矣。
引领轻量级基于POJO开发潮流的就是Spring框架,也就是本书要讨论的主题。本章,我们将从全局出发,让你大概了解什么是Spring。这一章将让你对Spring致力于解决的各种问题有个清晰的认识,同时也指明了本书的其他部分的主旨。事有轻重缓急——让我们搞清楚到底Spring是什么。
简化Java开发
Spring是一个开源框架,最初由Rod Johnson创建,并且在他的著作《行家一对一:J2EE设计与开发》中进行了描述。Spring是为了降低企业级应用开发的复杂度而创立的,它使得使用普通JavaBeans去实现之前只有EJB才能实现的功能成为可能。但是Spring的用武之地并不仅限于服务端的开发。任何Java程序都能在简洁性、可测试性和松散耦合性方面从Spring获益。
来源:oschina
链接:https://my.oschina.net/u/127301/blog/38947