Spring的七个核心模块,具体内容如下

1、Spring core:核心容器

核心容器提供spring框架的基本功能。Spring以bean的方式组织和管理Java应用中的各个组件及其关系。Spring使用BeanFactory来产生和管理Bean,它是工厂模式的实现。BeanFactory使用控制反转(IoC)模式将应用的配置和依赖性规范与实际的应用程序代码分开。BeanFactory使用依赖注入的方式提供给组件依赖。主要实现控制反转IoC和依赖注入DI、Bean配置以及加载。

2、Spring AOP:Spring面向切面编程

通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了Spring框架中。所以,可以很容易地使 Spring框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。AOP把一个业务流程分成几部分,例如权限检查、业务处理、日志记录,每个部分单独处理,然后把它们组装成完整的业务流程。每个部分被称为切面或关注点。

AOP的实现原理为动态代理技术,一共有两种代理模式:

(1)ProxyFactoryBean代理工厂对象

Spring内置代理类,引入一个中间层,能够创建不同类型的对象,利用它可以实现任何形式的AOP。

(2)TransactionProxyFactoryBean事务代理工厂对象

常用在数据库编程上,Spring利用TransactionProxyFactoryBean对事务进行管理,在指定方法前利用AOP连接数据库并开启事务,然后在指定方法返回后利用AOP提交事务并断开数据库。

3、Spring context:Spring上下文

Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,如JNDI、EJB、电子邮件、国际化、校验和调度功能。提供框架式Bean访问方式,其他程序可以通过Context访问Spring的Bean资源。

4、Spring DAO

DAO模块主要目的是将持久层相关问题与一般的的业务规则和工作流隔离开来。Spring 中的DAO提供一致的方式访问数据库,不管采用何种持久化技术,Spring都提供一致的编程模型。Spring还对不同的持久层技术提供一致的DAO方式的异常层次结构。Spring的DAO模块对JDBC进行了再封装,隐藏了Connection、Statement、ResultSet等JDBC API,使DAO模块直接继承JdbcDaoSupport类。

5、Spring ORM(Object Relation Mapper)对象关系映射模块

Spring 与所有的主要的ORM框架都集成的很好,包括hibernate、JDO实现、TopLink和IBatis SQL Map等。Spring为所有的这些框架提供了模板之类的辅助类,达成了一致的编程风格。
Spring的ORM模块对ORM框架如Hibernate等进行了封装,Spring能够管理、维护Hibernate,使用时可直接继承HibernateDaoSupport类,该类内置一个HibernateTemplate。Hibernate的配置也转移到Spring配置文件中。

(注:ORM是通过使用描述对象和数据库之间映射的元数据,ORM框架采用元数据来描述对象–关系映射细节,元数据一般采用xml格式,并且存放在专门的对象–映射文件中)

6、Spring Web模块

Web模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。Web层使用Web层框架,可选的,可以是Spring自己的MVC框架,或者提供的Web框架,如Struts、Webwork、tapestry和jsf。

Web模块用于整合Web框架,将Web框架也纳入Spring的管理之中。如Spring提供继承方式与代理方式整合Struts,继承方式不需要更改任何配置文件,只把Action继承自ActionSupport即可,但会对Spring产生依赖。代理方式需要在struts-config.xml中配置,由Spring全盘代理,因此可以使用Spring的各种资源、拦截器等。

7、Spring MVC

MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的。Spring的MVC框架提供清晰的角色划分:控制器、验证器、命令对象、表单对象和模型对象、分发器、处理器映射和视图解析器。Spring支持多种视图技术。

Spring MVC 的工作流程:

(1) 客户端发送请求,请求到达 DispatcherServlet 主控制器。
(2) DispatcherServlet 控制器调用 HandlerMapping 处理。
(3) HandlerMapping 负责维护请求和 Controller 组件对应关系。 HandlerMapping 根据请求调用对应的 Controller 组件处理。
(4) 执行 Controller 组件的业务处理,需要访问数据库,可以调用 DAO 等组件。
(5)Controller 业务方法处理完毕后,会返回一个 ModelAndView 对象。该组件封装了模型数据和视图标识。
(6)Servlet 主控制器调用 ViewResolver 组件,根据 ModelAndView 信息处理。定位视图资源,生成视图响应信息。
(7)控制器将响应信息给用户输出。

spring的核心模块相关推荐

  1. Spring的核心模块解析

    转载自 Spring的核心模块解析 Spring框架是一个轻量级的集成式开发框架,可以和任何一种框架集成在一起使用,可以说是一个大的全家桶.Spring从1.x发展到现在的5.x可以说是越来越强大,下 ...

  2. Spring——七大核心模块

    架构图: 七大核心模块: 核心容器(Spring Core): Core封装包是框架的最基础部分,提供IOC和依赖注入特性.这里的基础概念是BeanFactory,它提供对Factory模式的经典实现 ...

  3. Spring Boot从零入门2_核心模块详述和开发环境搭建

    本文属于原创,转载注明出处,欢迎关注微信小程序小白AI博客 微信公众号小白AI或者网站 https://xiaobaiai.net 文章目录 1 前言 2 名词术语 3 Spring Boot核心模块 ...

  4. Spring实战 | 第一部分 Spring的核心(第一章 Spring之旅)

    Spring的bean容器 介绍Spring的核心模块 更为强大的Spring生态系统 Spring的新功能 一.简化java开发 为了降低Spring开发的复杂性,Spring采取了以下4钟关键策略 ...

  5. Spring Boot 的 10 个核心模块

    学习 Spring Boot 必须得了解它的核心模块,和 Spring 框架一样,Spring Boot 也是一个庞大的项目,也是由许多核心子模块组成的. 你所需具备的基础 告诉你,Spring Bo ...

  6. Java开发的Spring Boot的核心模块

    Spring Boot 的核心模块 下面我们大概来了解一下 Spring Boot 的核心模块. 1.spring-boot 这是 Spring Boot 的主模块,也是支持其他模块的核心模块,主要包 ...

  7. SpringBoot2.1.5(45)--- Spring Boot的核心模块

    学习 Spring Boot 必须得了解它的核心模块,和 Spring 框架一样,Spring Boot 也是一个庞大的项目,也是由许多核心子模块组成的.Spring Boot 的核心模块 下面我们大 ...

  8. spring boot 核心_Spring Boot 的 10 个核心模块

    作者:Java技术栈 链接:https://www.jianshu.com/p/11c54edc2d11 学习 Spring Boot 必须得了解它的核心模块,和 Spring 框架一样,Spring ...

  9. Spring源码学习笔记:起源发展和核心模块主要职能

    1.博客内容均出自于咕泡学院架构师第三期 2.架构师系列内容:架构师学习笔记(持续更新) 1.Spring 的前世今生 早在 2007 年,一个基于 Java语言的开源框架正式发布,取了一个非常有活力 ...

  10. Spring框架(容器)--简介(实现原理、核心模块、组成部分)

    spring框架(容器) spring简介 1.Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益. 2.Spring是一个轻量 ...

最新文章

  1. Java项目:考试系统Java基础Gui(java+Gui)
  2. Windows Phone实用开发技巧(1):保存图片及加载图片
  3. 虚拟机中克隆一台新的centos7
  4. 8个关于SRT的误区
  5. 安装TCExam经验
  6. webpack联邦模块之consumes方法
  7. node.js express 启用 https
  8. C++ static关键字
  9. JavaScript 使用对象及ES6中的class
  10. 苹果新Metal API实测:四倍完爆OpenGL ES
  11. oracle锁mode,【案例】Oracle dml操作产生TM锁 lmode=6 分析原因和解决办法
  12. Google统治桌面再进一步 欲重走微软称霸之路
  13. Atitit 企业知识管理PKM与PIM
  14. 德语翻译器在线翻译中文-德语翻译器支持各大语言翻译
  15. 使用js脚本实现微信定时发送信息
  16. 【python】使用pandas操作MySQL数据库
  17. 4个基本不等式的公式高中_4个基本不等式的公式
  18. iOS代码混淆的探索
  19. 批量抓取并保存考拉海购上的宝贝商品主图和细节图
  20. libfdk_aac解码AAC

热门文章

  1. uml点餐系统活动图_UML 活动图
  2. 快速明白ARCore + 上手
  3. 数字栅格地图矢量化及三维显示教程
  4. 边缘检测帧差法matlab,【数字图像处理】帧差法与Kirsch边缘检测实现运动目标识别与分割...
  5. VMware卸载干净彻底 VMware Workstation 静态IP配置(vm常见问题)
  6. ENVI5.1裁剪影像及注意要点(如无论规则或是不规则裁剪结果都是矩形的问题求解)
  7. Python-Cartopy制图学习02-中国2010年5月干旱情况空间制图
  8. SIP的几个主要标准协议
  9. 【对讲机的那点事】带你玩转宝锋UV6R对讲机(四)
  10. OPNET中使用外部文件