Spring开篇(一)


Spring简述

Rod Johnson于2004年发布了Spring框架的第一个版本,Spring是从实际开发中抽象出来的框架,是企业应用开发的轻量级解决方案,包括基于依赖注入的核心机制、基于AOP的声明式事物管理、与多种持久层技术的整合、优秀的Web MVC框架等等。其显著特点之一就是分层架构,为JavaEE应用的各层提供解决方案。

由下图所示,Spring框架的核心机制是个容器Spring Core Container,主要由org.springframework.core、org.springframework.beans、org.springframework.context和org.springframework.expression四个包及其子包组成,主要提供Spring IOC容器支持。其中org.springframework.expression及其子包是Spring3.0新增的,它提供了Spring Expression Language支持。

Spring开篇(一)_第1张图片

可以加单地将Spring理解为一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。

Spring要点快报

[] 轻量,大小和开销方面都是轻量的;
[] 低侵入式设计,基于Spring开发的应用可以不依赖于Spring的API(特定类);
[]控制反转IOC(Inversion of Control)、依赖注入DI(dependency injection),通过控制反转促进松耦合,此时一个对象依赖的其他对象会通过被动的方式传递进来而不是该对象自己创建或者查找对象。可以认为IOC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它;
[] 面向切面AOP(aspect oriented programming),提供面向切面编程的支持。AOP允许通过分离应用的业务逻辑与系统级服务如审计auditing和事务transaction等进行内聚性的开发。应用对象只负责完成业务逻辑,不管其他的系统级关注点如日志或事务支持;
[] 容器,Spring包含和管理应用对象的配置和生命周期。基于一个可配置原型(prototype),可以配置每个bean的创建方式,如将bean配置成可以创建一个单独的实例或每次需要时都生成一个新的实例,以及它们是如何关联的等。此外,它又异于传统重量级的EJB容器那样庞大而笨重,难以使用;
[] 框架,Spring可以将 简单组件配置、组合成复杂的应用。应用对象被声明式地组合。提供很多基础功能(事物管理、持久化框架集成等),把应用逻辑的开发留给开发者。

Spring分层架构

Spring框架由7个模块组成,组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。如下图所示:

Spring开篇(一)_第2张图片

1. 核心容器:最底层是核心容器,它定义了创建、管理和配置bean的方式。核心同期提供Spring框架的基本功能,其主要组件是BeanFactory,是工厂模式的实现。BeanFactory使用控制反转(IOC)将应用程序的配置和依赖规范与实际应用程序代码分开;
2. Spring AOP:通过配置管理特性,Spring AOP模块直接将面向切面的编程功能集成到Spring框架中。可以很容易地使Spring框架管理的任何对象支持AOP。Spring AOP模块为基于Spring的应用程序中的对象提供事物管理服务。通过Spring AOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。
3. Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。
4. Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。
5. Spring Web:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
6. Spring Context:Spring 上下文是一个配置文件,向 Spring 框架提上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。
7. Spring Web MVC:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。

Spring 的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象。这样的对象可以在不同 J2EE 环境 (Web 或 EJB)、独立应用程序、测试环境之间重用。

Spring4.0后的新添丁

相比Spring3.0,Spring4.0新的改变包括:

[] 支持Java 8,如Java 8新增的java.time包下的日期、时间类;
[] Spring4.0的Web支持Servlet3.0或更高规范;
[] 核心IoC容器新增了泛型限定式依赖注入、Map注入、List(数组)注入、延迟注入等功能,主要体现在基于注解的配置。
[] 新增了一个spring-websocke模块,该模块支持WebSocket、SockJS、STOMP通信。
[] 支持使用Groovy DSL进行Bean配置。
[] 删除了一些已过时的包和类。

你可能感兴趣的:(spring)