Spring 框架特性介绍

2019-03-25 0 By admin

Spring 是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。
Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
Spring框架为开发提供了一系列的解决方案
利用控制反转的核心特性,并通过依赖注入实现控制反转,来实现管理对象生命周期容器化,
利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。

一、轻量

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

二、控制反转 IoC

Spring 通过一种称作控制反转(IoC)的技术促进了松耦合
当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。
你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

IoC 旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。
Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象

三、面向切面 AOP

Spring 提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。

应用对象只实现它们应该做的(完成业务逻辑)仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

SpringAOP框架 基于代理模式,实现运行时可配置。AOP框架主要针对模块之间的交叉关注点进行模块化。
Spring框架的 AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。

四、容器 Container

Spring 包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器。
你可以配置你的每个 bean 如何被创建【基于一个可配置原型(prototype),你的 bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例】以及它们是如何相互关联的
然而,Spring 不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

五、自动地装配Spring 或第三方类库

Spring 可以将简单的组件配置、组合成为复杂的应用。
在Spring 中,应用对象被声明式地组合,典型地是在一个XML文件里。
Spring 也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。

六、事务管理

Spring 框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。
Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。
Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。