浅谈Spring(一)
Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc21hbGxfYmFieTAx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="565" height="300" hspace="50" alt="">
组成 Spring 框架的每一个模块(或组件)都能够单独存在。或者与其它一个或多个模块联合实现。每一个模块的功能例如以下:
一.Spring Core:
Spring Core提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。
BeanFactory 使用控制反转 (IoC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
二.Spring Context:
Spring Context 上下文是一个配置文件。向 Spring 框架提供上下文信息。Spring 上下文包含企业服务。比如 JNDI、EJB、电子邮件、国际化、校验和调度功能。
三.Spring AOP:
通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以。能够非常easy地使 Spring 框架管理的不论什么对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件。就能够将声明性事务管理集成到应用程序中。
四.Spring DAO:
JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理。而且极大地减少了须要编写的异常代码数量(比如打开和关闭连接)。
Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。
五.Spring ORM:
Spring 框架插入了若干个 ORM 框架。从而提供了 ORM 的对象关系工具,当中包含 JDO、Hibernate 和 iBatis SQL Map。全部这些都遵从 Spring 的通用事务和 DAO 异常层次结构。
六.Spring Web 模块:
Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。
所以。Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求參数绑定到域对象的工作。
七.Spring MVC 框架:
MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。
通过策略接口。MVC 框架变成为高度可配置的。MVC 容纳了大量视图技术。当中包含 JSP、Velocity、Tiles、iText 和 POI。 Spring 框架的功能能够用在不论什么 J2EE server中,大多数功能也适用于不受管理的环境。Spring
的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据訪问对象。毫无疑问,这种对象能够在不同 J2EE 环境 (Web 或 EJB)、独立应用程序、測试环境之间重用。
最新文章
- 手动封装js原生XMLHttprequest异步请求
- 洛谷 P2725 邮票 Stamps Label:DP
- android—-线性布局
- occ代码分析
- MAC OS X 系统怎么样?
- pouchdb 安装使用
- 推荐GitHub上10 个开源深度学习框架
- nginx对比haproxy 的反向代理
- Android中实现全屏、无标题栏的两种办法(另附Android系统自带样式的解释)
- .NET中 DAL+IDAL+Model+BLL+Web是什么意思
- Session与Caching
- DDD分层架构之值对象(介绍篇)
- python yield generator 详解
- struts2+hibernate+spring注解版框架搭建以及简单测试(方便脑补)
- POJ 2299 Ultra-QuickSort (离散化)+【树状数组】
- python 发送带附件的邮件
- python3.6使用f-string来格式化字符串
- [转] Matlab编程规范(MATLAB Programming Style Guidelines)
- Python3基础 os chdir 改变工作目录
- windows 环境下python 安装 pypcap 并用pyinstaller打包到exe,解决DLL 加载失败。
热门文章
- 有关索引的DMV(转)
- excel 截取单元格部分内容(从指定位置截取)
- 【Oracle】查看正在运行的存储过程
- 设置linux中tcp默认的20秒connect超时时间(转)
- ie6 javascript:void(0);
- javascript异步代码的回调地狱以及JQuery.deferred提供的promise解决方式
- python pivot() 函数
- hibernate开发流程
- CentOS 5.5 下修改Apache默认端口80
- 何时应该使用Directive、Controller、Service?