Spring介绍

Spring介绍及功能

当Web 应用程序的需求更改时,需要更改业务逻辑。业务逻辑的更改会影响Web 应用程序的其他组件,因为它们是相互依赖的。换句话说,Web 应用程序的组件是紧密耦合的。因此,要使Web 应用程序易于更新,必须使Web 应用程序的组件松散耦合。Spring 框架使开发人员能够创建其组件松散耦合的Web 应用程序。

Web 应用程序分为以下架构层:

  • 关系数据库层
  • 表示层
  • 业务层

Web 应用程序开发最重要的部分是实现业务层。业务层负责从表示层访问数据,处理数据,将数据存储在数据库中,与表示层和数据库层交互,是Web 应用程序的核心。

使用EJB 和Servlet 实现Web 应用程序的业务逻辑可能导致以下问题:

  • Web 应用程序可能包含实现其核心功能所不需要的大量代码。
  • 单元测试对于这种Web 应用程序而言很困难,因为应用程序代码与J2EE 容器紧密关联。
  • 应用程序中使用的J2EE 设计模式通常是开发人员创建的变通方法,仅用来克服某个应用程序中的某些限制。
  • 这些应用程序的代码依赖于J2EE 容器(Tomcat)。

Spring 框架旨在通过支持使用简单JavaBean (POJO) 实现Web 应用程序的业务逻辑来克服这些问题。旨在使应用程序代码对其框架的依赖性降至最低。执行API 查找也不需要Spring 应用程序。

Spring 是模块框架,具有以下功能:

  • 可插拔性
    Spring 允许您使用XML 配置文件将业务层对象互相关联。
    执行应用程序时,Spring 会根据需要自动创建和实例化所有对象关系。在支持Spring 的应用程序中,您可以方便地插入新服务或修改现有的服务。因此,这些应用程序对象称为可插拔对象。

  • 依赖注入(DI)
    Spring 框架通过DI 倡导松散耦合概念。
    使用DI,您无需自己创建业务层对象或在代码中将它们互相关联。
    Spring 框架按照配置文件中的定义创建业务层对象并将它们互相关联。
    DI 无需代码查找,允许可插拔性和重用现有代码,并且易于维护和测试应用程序。

  • 面向方面编程(AOP)
    它将应用程序逻辑与事务管理、日志记录和安全性等系统级别服务分开。
    这些服务被称为横切关注点,因为它们横跨应用程序中的各种对象。
    它用于以方面的形式模块化和分隔这些关注点。
    方面被定义为系统范围关注点的模块化,实现这些关注点将跨越应用程序中的多个对象。
    方面封装需要在应用程序的多个对象中实现的行为。

  • 容器
    Spring 框架是保存所有应用程序对象的容器。
    它还负责管理所有应用程序对象的生命周期和配置。
    您只需描述将如何创建、配置应用程序对象以及如何将其互相关联。
    容器将创建这些对象并将它们关联在一起。

  • 轻量级
    Spring 是一个轻量级框架,容易配置并创建复杂的应用程序。
    它包含几个定义良好的模块,这些模块基于DI 和AOP 的概念构建。
    这些模块提供编写松散耦合的应用程序代码的平台。
    开发人员可以根据应用程序需求来选择使用所有模块或任何特定的模块。

Spring架构

Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 所以模块都构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式。
允许您只选择符合应用程序需求的那些模块,省去应用程序不需要的模块。

这里写图片描述

核心模块:
提供Spring 框架的基本功能。
包含Spring 框架最重要的组件-bean 工厂容器。
bean 工厂容器:
形成了在应用程序中实现DI 的基础。
负责根据用户提供的bean 定义来创建bean。
要在您的Web 应用程序中实现核心模块,需要使用org.springframework.core包。

DAO 模块:
旨在通过Hibernate、JDO 或JDBC 等技术标准化数据访问工作。
使您能编写简单的数据库代码,而无需担心打开和关闭数据库连接之类的任务。
DAO 提供了异常层次结构来:
管理数据库连接;
处理异常;
处理不同数据库服务器抛出的复杂错误消息。
要在Web 应用程序中实现DAO 模块,需要使用org.springframework.dao包。

ORM 模块:
使开发人员能根据应用程序的需要将Spring 框架与其他几个ORM 工具(如:Hibernate、iBatis 和JDO)集成。
构建在DAO 模块之上,以便于根据应用程序的需求为ORM 工具构建DAO。
使用org.springframework.orm包实现

AOP 模块:
支持在Web 应用程序中实现各个方面。
支持应用程序对象的松散耦合。
使您能分隔应用程序逻辑和被称为横切关注点的系统级别服务。
使您能够借助于XML 配置文件在应用程序中应用声明性企业服务。
使用org.springframework.aop包实现。

MVC 模块:
为创建Web 应用程序提供了灵活的模型-视图-控制器实现。
使您能将模型和应用程序逻辑与视图或应用程序UI 分开。
通过将UI 和应用程序逻辑分开来倡导松散耦合的概念。
使您能将几个其他的MVC 框架(如:Struts、WebWorks 或Tapestry)与应用程序集成。
使用org.springframework.web包实现。

应用程序上下文模块:
构建在核心模块之上。
使您能通过一致的Spring API 获得应用程序对象的应用程序资源。
基于bean 工厂的概念构建。
支持消息、应用程序生命周期事件和验证的国际化。
提供许多企业级别服务,如:JNDI 访问、、EJB 集成、电子邮件、远程通信、日程安排
使用org.springframework.context包实现。

Web 上下文模块:
构建在应用程序上下文模块之上。
提供创建基于Web 的应用程序的上下文。
属于Web 应用程序开发堆栈,该堆栈也包括MVC 模块。
支持将Spring 框架与Struts、WebWorks 和JSF 等各种框架集成。
使用org.springframework.web包实现。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值