Spring 的最根本的使命—简化Java开发------------------Craig Walls《Spring In Action》

spring work_spring work

轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。



  (1)轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。



  (2)控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。如果一个对象通过接口(而不是具体实现或初始化过程)来表明依赖关系,那么这种依赖就能够在对象本身毫不知情的情况下,用不同的具体实现进行替换。



  (3)面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。



  (4)容器——容器是Spring框架的核心。在基于Spring的应用中,你的应用对象包含生存于Spring容器中。Spring容器负责创建它们,装配它们,管理它们的生命周期。你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。



    Spring容器并不只有一个,Spring自带两类容器:beanFactory(bean工厂)和applicationContext(应用上下文)。



  (5)框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。



  所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。



   Spring框架共有20多个不同的模块组成,以下是主要的几个模块:

  (1)Spring核心容器

  容器是Spring框架的核心,它管理Spring应用中bean的创建、装配以及管理。包括了bean工厂和应用上下文。同时,该模块也提供了许多企业服务,如Email、JNDI访问、EJB集成和调度。

(2)AOP模块

  这个模块是Spring应用系统中开发切面的基础,与DI一样,AOP可以帮助应用对象解耦

(3)数据访问与集成

  使用原生的JDBC编写代码会导致大量的样板式代码,如获得数据库谅解,创建语句,处理结果集,关闭数据库连接等。Spring的JDBC和DAO模块抽象了这些样板式代码。

另外,Spring对很多流行的ORM(Object-Ralational Mapping)框架进行了集成,如Hibernate、Ibatis等。Spring的事务管理支持所有的ORM框架和JDBC。

(4)Web与远程调用

  虽然Spring能够与多种MVC框架进行集成,但是其自身还是提供了一套强大的MVC框架,有助于在web层提高应用的耦合水平。这就是Spring MVC。