Spring的整体架构

1、Spring框架至今已集成了20多个模块。这些模块主要被分如下图所示的核心容器、数据访问/集成,、Web、AOP(面向切面编程)、工具、消息和测试模块[5]:

2、Core Container 核心容器
核心部分分为4大块,spring-core, spring-beans, spring-context, spring-expression. 其中core和bean是整个框架的核心,提供了基础的DI(依赖注入)和IOC(控制反转)功能。 Context建立在core和beans模块之上,提供一种类似JNDI且以框架的方式来操作对象的方式。Context模块从beans模块继承它的功能同时增加了国际化支持,如资源绑定等,同时,Context模块也支持JavaEE功能,如EJB,JMX和基本的远程调用。ApplicationContext接口是context模块的焦点。expression是一种很强大的expression language,支持在运行时查询和操作对象的属性,我们会在后面的文章中举些例子来说明spring expression language的用法。

3、AOP and instrumentation
Aop模块提供了面向切面编程的实现,和AspectJ集成。

4、Messaging
Messaging是spring4新增加的模块,包含了一部分主要的基于message的应用的实现。

5、Data Access/Integration
Data access顾名思义,是spring对数据层提供的支持,是功能比较丰富的模块。提供了包括JDBC,事物,ORM,JMS等一系列实现。

6、Web
Web模块主要提供面向web的一些实现,例如多文件上传,servlet监听器以及spring mvc方面的支持。

7、Test
Test模块主要是针对spring的各个模块做各种各样的测试,包括单元测试、集成测试等等。

Spring生态系统(Spring可能大家都在用,很少去关注整体架构)相关推荐

  1. 针对Spring的Spring Retry 我发现了这样一个大家都不知道的技巧!

    外部服务对于调用者来说一般都是不可靠的,尤其是在网络环境比较差的情况下,网络抖动很容易导致请求超时等异常情况,这时候就需要使用失败重试策略重新调用 API 接口来获取.重试策略在服务治理方面也有很广泛 ...

  2. 为什么Spring中的bean默认都是单例模式?

    省流小助手:主要是为了提升性能.希望知道原理的小伙伴继续往下看. 大家都知道Spring中的bean默认情况下都是单例模式(Singleton),那为什么呢?想要弄明白这个问题,首先需要对反射有一定的 ...

  3. Spring 和 Spring Boot 最核心的 3 大区别,详解!

    概述 对于Spring和SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习SpringBoot的我当时也是一头雾水,随着经验的积累.我慢慢理解了这两个框架到底有什么区别,相信对于用了 ...

  4. Spring 和 Spring Boot 之间到底有啥区别?

    概述 对于Spring和SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习SpringBoot的我当时也是一头雾水,随着经验的积累.我慢慢理解了这两个框架到底有什么区别,相信对于用了 ...

  5. 后端技术:Java中Spring 和 Spring Boot 有哪些区别,看完你就明白了!

    概述 对于 Spring和 SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习 SpringBoot的我当时也是一头雾水,随着经验的积累.我慢慢理解了这两个框架到底有什么区别,相信对 ...

  6. spring javafx_Oracle Spring Clean JavaFX应该吗?

    spring javafx 我们确实在Codename One上依赖JavaFX,我们的模拟器需要它. 我们的桌面版本使用它,而我们的设计器工具基于Swing. 我们希望它成功,这对我们的业务至关重要 ...

  7. spring揭秘_被问到了! Spring 和 Spring Boot 之间到底有啥区别?

    相信很多小伙伴和我一样,常用Spring 和Spring Boot 但是就是没有研究二者之间到底有什么区别? 今天就来大揭秘 ↓ 概述 对于 Spring和 SpringBoot到底有什么区别,我听到 ...

  8. Spring Cloud Spring Cloud Alibaba 知识点总结

    欢迎访问:http://lss-coding.top/ 我自己的博客平台 1. 微服务架构简介 1.1 微服务架构概述 ​ 2014 年 3 月 Martin Fowler 提出微服务架构 ​ 微服务 ...

  9. Spring技术内幕:设计理念和整体架构概述

    为什么80%的码农都做不了架构师?>>>    程序员都很崇拜技术大神,很大一部分是因为他们发现和解决问题的能力,特别是线上出现紧急问题时,总是能够快速定位和解决. 一方面,他们有深 ...

  10. 手动创建Spring项目 Spring framework

    之前学习框架一直是看的视频教程,并且在都配套有项目源码,跟着视频敲代码总是很简单,现在想深入了解,自己从官网下载文件手动搭建,就遇到了很多问题记载如下. 首先熟悉一下spring的官方网站:http: ...

最新文章

  1. 线段树 ---- 线段树上区间二分 或者单点二分 codeforces C. Greedy Shopping
  2. 【图论】【最短路】【SPFA】【USACO题库】2.4.4 Bessie Come Home回家(jzoj 1274)
  3. plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘not found
  4. Missing required icon file.Thebundle does not con
  5. TimeSeriesChart按月进行统计时坐标对不齐的问题
  6. 扒一扒国产 Linux 操作系统架构是怎么设计的 ?
  7. C语言文件读写常用函数
  8. 运用网络执法官实现网络监控
  9. 成功注册一个谷歌账号
  10. 两轮差速机器人舵机转轴示意图_一种基于两轮差速机器人的运动控制方法与流程...
  11. 怎样快速查询多个天天欧洲物流单号的在途信息
  12. 批量更改Excel数据透视表字段汇总方式
  13. 2019电赛--OpenMV学习笔记
  14. 瞬间让你效率提高一倍的高效学习方法
  15. BT协议-torrent编码
  16. wma格式怎么转换mp3?
  17. 九宫格手势密码、指纹密码
  18. Windows命令行用法
  19. 数据库排行榜|当 DB-Engines 遇见墨天轮国产数据库排行
  20. Java基于GUI完成的猜数字小游戏

热门文章

  1. php 搜索获取排名,用PHP查询搜索引擎排名位置的代码
  2. 为什么家里pm25比外面高_你绝对不会相信在家用卷发棒烫发竟然比在外面烫发更伤发?...
  3. 查看vs支持的c#语言版本/查看.NetCore版本/更改c#语言版本
  4. swoft增加swagger(丝袜哥)
  5. PHP 中 strpos(), stripos(),strrpos(), strripos() 的区别
  6. go.mod 文件中的 //indirect
  7. PHP file_get_contents与file_put_contents
  8. 六石管理学:好大喜功,头目们是否相信
  9. WP布局难题,由三个升级为四个
  10. 统信招5000人?难以置信