Spring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架。兴起于2003年,它主要是为了解决企业应用开发的复杂性而诞生的,框架的主要优势之一就是其分层结构,分层结构允许使用者使用哪一个组件。同时也为J2EE开发提供了集成的框架。

简单来说:Spring是一个分层的一站式的轻量级的开源框架。

  • 目的:解决企业应用开发的复杂性
  • 功能:使用基本的JavaBean代替EJB
  • 范围:任何Java应用

JavaBean介绍:

JavaBean是一种JAVA语言写成的可重用组件。他通常具有如下特点:

1.     所有的属性为private

2.     提供默认的构造方法

3.     提供getter和setter方法

4.     实现serializable接口

 

Spring的核心模块:

  • 核心容器(SpringCore):提供了Spring框架的基本功能,核心容器的主要组件是BeanFactory,他是工厂模式的实现。Bean Factory使用控制反转的模式将应用程序的配置和依赖性规范与实际的应用程序代码相分开。
  • 应用上下文(SpringContext):是一个配置文件,向Spring模块提供上下文信息。Spring上下文包含了一些企业服务,例如:JNDI、EJB、电子邮件、国际化、校验、调度等功能。
  • AOP模块(Spring AOP) :通过配置管理特性,Spring AOP模块直接将面向切面的编程功能集成到了Spring框架当中。所以,可以很容易的使Spring框架管理的任何对象都可以支持AOP。Spring的AOP模块为基于Spring的应用程序中的对象提供了事物管理功能,通过使用Spring AOP不用依赖EJB组件就可以将声明性事物管理集成到应用程序当中。
  • JDBC和DAO模块(Spring DAO):JDBC、DAO的抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商所抛出的异常信息。异常层次结构简化了错误处理,并且极大的降低了需要编写的异常处理代码数量。例如打开和关闭连接等等。SpringDAO的面向切面,JDBC的异常遵从通用的DAO异常层次结构。
  • 对象实体映射(SpringORM):Spring框架插入了若干个ORM框架,从而提供了ORM对象的关系工具。其中包括JDO、Hibernate… …所有这些都遵从Spring的通用事物和DAO异常层次结构。
  • Web模块(Spring Web):Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文,所以Spring框架支持与Struts的集成。Web模块还简化了处理多部分请求以及将请求参数绑定到预对象的操作。
  • MVC模块(Spring WebMVC):Spring的MVC是一个全功能的构建Web应用程序的MVC的实现。通过策略接口,MVC框架变成为高度可配置的。MVC容纳了大量视图技术。模型来由JavaBean来构成,存放与Map当中。而视图是一个接口,负责实现模型。控制器是一个逻辑代码,是Control的实现。

Spring框架的功能可以用在任何J2EE服务器当中,大多数功能也适用于不受管理的功能

Spring的核心要点就是:支持不绑定到特定J2EE服务的可重用业务和数据的访问对象

 

Spring的优势:

  • 它定位的领域是许多其他流行的framework没有的
  • Spring是全面的和模块化的
  • 它的设计从底部帮助你编写易于测试的代码
  • Spring是潜在的一站式解决方案

 

Spring的优点:

  • 低侵入式设计,代码污染极低
  • WriteOnce, Run Anywhere
  • DI有效的降低了耦合度
  • AOP提供了通用任务的集中管理
  • ORM和DAO简化了对数据库访问
  • 高度开放性,并不强制

Spring的这些优点贯穿与表现层,业务层以及持久层

 

Spring的优点给开发带来的好处:

  • 可以有效组织中间层对象
  • 使用统一的配置文件
  • 促进良好编程习惯,减少编程代价
  • 易于单元测试
  • 使EJB成为一种备选
  • 为数据存取提供了一致的框架

Spring的特点:

  • 方便解耦,简化开发
  •  AOP编程的支持
  • 声明式事务的支持
  • 方便程序的测试
  • 方便集成各种优秀框架
  • 降低JavaEE API的使用难度
  • Spring的源码是经典学习范例

 


总结:

1.Spring带来了复杂的J2EE开发的春天,他让我们J2EE的开发变得越来越简单。

2.它的核心是轻量级的IOC容器,它的目标是为J2EE应用提供了全方位的整合框架,在Spring框架下实现多个子框架的组合,这些子框架之间可以彼此独立,也可以使用其它的框架方案加以代替

3.Spring希望为企业应用提供一站式的解决方案,Spring为企业级服务进行了进一步的封装,简化了企业级的开发。同时采用他也就意味着良好分层设计,并且保证了面向接口编程,加上他的IOC和AOP容器的优势更加方便我们后期的维护。但是,由于容器大量的使用反射机制来装配对象一定会影响性能。对于一些高并发的大型应用,我们建议还是要慎重使用。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐