Spring Core Container:

模块作用:Core 和 Beans 模块是框架的基础部分,提供 IoC (转控制)和依赖注入特性。 这里的基础 概念是 BeanFactory,它提供对 Factory 模式的经典实 现来消除对程序’性单例模式的需要,并真 正地允许你从程序逻辑中分离出依赖关系和配置

Core

主要包含 Spring 框架基本的核心工具类, Spring 的其他组件都要用到这个包 里的类, Core模块是其他组件的基 本核心。

Beans (BeanFacotry的作用)

它包含访问配直文件、创建和管理 bean 以及进行 Inversion of Control I Dependency Injection ( IoC/DI )操作相关的所有类

Context(处理BeanFactory,,一下还是ApplicationContext的作用)

模构建于 Core 和 Beans 模块基础之上,提供了一种类似JNDI 注册器的框 架式的对象访问方法。 Context 模块继承了 Beans 的特性,为 Spring 核 心提供了大量 扩展,添加了对国际化(例如资源绑定)、事件传播、资源加载和对 Context 的透明创 建的支持。 Context 模块同时也支持 J2EE 的一些特 性, ApplicationContext 接口是 Context 模块的关键本质区别:(使用BeanFacotry的bean是延时加载的,ApplicationContext是非延时加载的)

Expression Language

模块提供了强大的表达式语言,用于在运行时查询和操纵对象。 它是 JSP 2.1 规范中定义的 unifedexpression language 的扩展。 该语言支持设直/获取属 性的值,属性的分配,方法的调用,访问数组上下文( accessiong the context of arrays )、 容器和索引器、逻辑和算术运算符、命名变量以及从Spring的 IoC 容器中根据名称检 索对象。 它也支持 list 投影、选择和一般的 list 聚合

Spring Data Access/Integration

JDBC

模块提供了一个 JDBC 抽象层,它可以消除冗长的 JDBC 编码和解析数据库厂 商特有的错误代码。
这个模块包含了 Spring 对 JDBC 数据访问进行封装的所有类

ORM 模块为流行的对象-关系映射 API

如 JPA、 JDO、 Hibernate、 iBatis 等,提供了 一个交互层。 利用 ORM 封装包,可以混合使用所有 Spring 提供的特性进行 O/R 映射, 如前边提到的简单声 明性事务管理。

OXM 模块提供了一个对 ObjecνXML 映射实现的抽象层

Object/XML 映射实现包括 JAXB、 Castor、 XMLBeans、 JiBX 和 XStrearn

JMS ( Java Messaging Service )

模块主要包含了 一些制造和消 费消息的特性。

Transaction

支持编程和声明性的事务管理,这些事务类必须实现特定的接口,并 且对所有的 POJO 都适用

Spring Web

Web 模块:提供了基础的面向 Web 的集成特性c 例如,多文件上传、使用 servlet listeners 初始化IoC 容器以及一个面向 Web 的应用上下文。 它还包含 Spring 远程支持中 Web 的相关部分。

Spring Aop

Aspects 模块提供了对 AspectJ 的集成支持。

Instrumentation 模块提供了 class instrumentation 支持和 classloader 实现,使得可以在特
定的应用服务器上使用

Test

Test 模块支持使用 JUnit 和 TestNG 对 Spring 组件进行测试

Spring 容器继承图

控制反转和依赖注入

什么是控制反转?我觉得有必要先了解软件设计的一个重要思想:依赖倒置原则(Dependency Inversion Principle )

①:什么是依赖倒置原则?

假设我们设计一辆汽车:先设计轮子,然后根据轮子大小设计底盘,接着根据底盘设计车身,最后根据车身设计好整个汽车。这里就出现了一个“依赖”关系:汽车依赖车身,车身依赖底盘,底盘依赖轮子

上图看上去没有什么毛病?但是 万一轮胎尺寸改了,那么地盘需要改,地盘改了,车身也改了,让后整个汽车构造都改了.
然后汽车公司倒闭了......................

董事长依赖总经理争取,总经理依赖部门经理挣钱,部门经理依赖员工争取,那么员工离职了怎么
办?????????????????????

反过来.............................假如汽车公司决定修改轮胎的 我们就只需要改动轮子的设计,而不需要动底盘,车身,汽车
的设计了。

IOC容器的最最最最核心思想.......................

ioc的思想最核心的地方在于,资源不由使用资源的双方管理,而由不使用资源的第三方管理,这可以带来很多好处。第
一,资源集中管理,实现资源的可配置和易管理。第二,降低了使用资源双方的依赖程度,也就是我们说的耦合度

Spring框架功能整体介绍相关推荐

  1. Struts1、Struts2、Hibernate、Spring框架工作原理介绍

    Struts1工作原理 Struts1工作原理图 1 .初始化: struts 框架的总控制器 ActionServlet 是一个 Servlet ,它在 web.xml 中配置成自动启动的 Serv ...

  2. Spring Framework(框架)整体架构

    原文链接:https://blog.csdn.net/wd2014610/article/details/80061808 Spring 在这个Spring框架大行其道的软件开发世界里,尚有很多工程师 ...

  3. Spring Framework(框架)整体架构(不知道就有些搞笑了哈)

    Spring 在这个Spring框架大行其道的软件开发世界里,尚有很多工程师天天在用,但是从来不会去思考下,Spring框架的整体架构到底是什么样子的啊. 一.首先通过维基百科看看什么是Spring框 ...

  4. Spring框架—基础介绍

    原文地址:https://www.cnblogs.com/lagou/p/10552815.html 目录 一.spring基本概念 二.spring框架 三.spring中机制和实现 三.sprin ...

  5. spring框架介绍_Spring框架介绍

    spring框架介绍 这是Spring框架和Spring核心概念的简介. 在本教程中,我们将介绍Spring Framework的主要优点和功能. 在随后的教程中,我们将学习有关Spring和Spri ...

  6. java项目功能详情介绍,JAVAEE—spring的详细介绍

    一.spring介绍 1.三层架构中spring位置 2.spring一站式框架 正是因为spring框架性质是属于容器性质的. 容器中装什么对象就有什么功能.所以可以一站式. 不仅不排斥其他框架,还 ...

  7. Spring框架Runtime介绍(导包)

    一.Spring框架Runtime介绍,如图 1.1 Test: Spring提供测试功能 1.2 Core Container:Spring核心容器,Spring启动的基本条件, 1.2.1 Bea ...

  8. Spring 框架简单介绍

    考虑到你可能不熟悉 Spring,我这里对它做下简单介绍.我们常说的 Spring 框架,是指 Spring Framework 基础框架.Spring Framework 是整个 Spring 生态 ...

  9. Spring框架介绍——第一章

    文章目录 1: Spring的进化 2:Spring的功能 3:Spring模块介绍 在所有的框架体系中,Spring 框架是其中最明亮的一颗星星.Spring框架在Java的发展过程中是不可或缺的, ...

最新文章

  1. 密码学研究-玩转密钥
  2. linux命令查看cpu架构,Linux下如何查看CPU信息
  3. Eclipse启动出现“Failed to create the Java Virtual Machine”错误
  4. unix高级编程apue.h问题
  5. 将项目导入eclipse中出现的jsp页面报错
  6. Teradata QueryGrid整合最佳分析技术 拓展客户选择空间
  7. 系统性能衡量维度、指标
  8. Web Service学习总结
  9. ubuntu12.04 android studio 安装
  10. Python实现CGI环境
  11. springdata和mysql_Spring Boot使用Spring Data JPA访问MySQL数据库
  12. 使用qt多线程的一个简单方法
  13. ospf 默认路由综合配置
  14. 如何用递归处理一个数组中的数据成为一个树结构_Spark处理的一些业务场景(持续更新ing)...
  15. Mathematica 计算矩阵的伴随矩阵
  16. python 单向链表逆序_python实现单链表反转(经典笔试题)
  17. Latex/CTex/WinEdt自动编号小标题序号(条目/编号/描述)
  18. 电脑字母,电脑英文字母大小写怎么转换
  19. echarts修改标题字体大小、颜色、位置、内容
  20. 论文翻译-Hamming OCR A Locality Sensitive Hashing Neural Network for Scene Text Recognition

热门文章

  1. 分组,命名分组,url的命名和反向解析
  2. 面试题18: 删除链表节点:删除链表中重复的节点
  3. 贪心1--排队打水问题
  4. 数据压缩 第四次作业
  5. 【读书笔记】Android的Ashmem机制学习
  6. (四)Canvas API方法和属性汇总
  7. 弹性盒模型--新版与旧版比较(1)
  8. 为什么静态成员、静态方法中不能用this和super关键字
  9. 探索 OpenStack 之(10):深入镜像服务Glance
  10. 薛老师软考高项学员:2016年4月6日作业