Spring | Spring的这七大模块你了解吗?

Spring的这七大模块你了解吗

本文会和大家分享以下几点

  1. spring 七大模块
  2. 模块的主要作用
  3. 模块间的依赖关系
  4. spring经典面试题——什么是 Spring

Spring的七大模块

那么先来看看这个图回忆下 Spring 有哪些模块吧

Spring | Spring的这七大模块你了解吗?

可以分成下面这七大模块

小结

Spring | Spring的这七大模块你了解吗?

后面文章重点会放在颜色深的模块~

数据模块

数据访问与集成模块 , Data Access/Integration

在这个模块中,有五个小模块,分别是

看了一眼下来,发现最常用的应该就是这个 ORMTransactions ,而这个 JMSJDBC差不多,都提供了相应的模板,也是很少用到了,最后这个 OXM 都没点印象的

小结

星号的是重点模块~

Spring | Spring的这七大模块你了解吗?

Web模块

这里有四个模块

Web 模块提供了核心部分,如 编解码,过滤器,序列化,国际化,跨域,转换器,客户端和服务端等等

WebMVC 模块 即我们平时用的 SpringMVC

WebSocket 模块 用来支持这个 全双工通信

WebFlux模块 就是这个响应式Web编程模块 ,可以参考下图

Spring | Spring的这七大模块你了解吗?

小结

Spring | Spring的这七大模块你了解吗?

切面模块

这里有大名鼎鼎的 AOPAspects

Aop : Aspect Oriented Programming , 面向切面编程 ,是对 OOP 的补充

Aspects : 切面

不知道小伙伴们看到这里有没有犯迷糊~, 这里居然是两个模块,我一直以为只有 AOP 这个模块

简单说明下这两个模块的不同

Spring AOP 是一个基于代理的 Aop 框架 ,日常使用比较多的

Spring Aspects 模块里面则定义了五种类型的切面,如下

Spring | Spring的这七大模块你了解吗?

小结

Spring | Spring的这七大模块你了解吗?

工具模块


Instrumentation , 这个是 Java 的一个接口,可以用来做

监控代理

事件日志记录

代码覆盖率

Examples of such benign tools include monitoring agents, profilers, coverage analyzers, and event loggers. —— 来自该接口的注释

还没用过呢

这个 AspectJLTW(load-time-weaver) 就是通过该方式来进行切面织入

消息模块

Spring-messaging 模块提供了一种基于 WebSocketSTOMP 协议实现

STOMP (Simple Text Oriented Messaging Protocol) 是一种 流文本定向消息协议,也是一种为MOM(Message Oriented Middleware,面向消息的中间件)设计的简单文本协议

常见的这几个MQ都支持该协议,比如 RocketMQRabbitMQActiveMQ

我们可以通过 Spring 官网的例子上手这个模块,大概如下

简单版

启用简单内置消息代理时使用的组件

Spring | Spring的这七大模块你了解吗?

进阶版

对接外部 MQ 来实现这个广播,订阅

Spring | Spring的这七大模块你了解吗?

核心模块

来到 Spring 最核心的部分,这里有我们熟悉的 控制反转 (Inversion of Control, IOC ) 和依赖注入( Dependency Injection, DI)

这里有四个核心模块

每一个模块都很重要,这里先列几个大家熟悉的 Bean

比如:

小结

大概有这么些内容

Spring | Spring的这七大模块你了解吗?

测试模块

这里有 MockJunit 等,就不多介绍先

源码依赖图

根据 Spring 源码模块中的 gradle 依赖,可以整理出这么一张依赖关系图

Spring | Spring的这七大模块你了解吗?

什么是Spring?

这里分享下 4ye 滴思路

Spring 是一个轻量级框架,有七大模块,分别为 数据,Web,切面,工具,消息,核心,测试

总共 20 几个小模块

核心模块有 Beans,Core,Context,ExpressionIOC 和 DI⭐切面模块主要有 AOP ,涉及到这个 AOP 编程 ⭐Web模块有 Web,WebMVC, WebSocket, WebFlux数据模块主要有 ORM ,TX

方便扩展,比如 邮件,缓存,定时任务等模块

总结

本期介绍了这七大模块,以及各模块间的依赖,作用

展开阅读全文

页面更新:2024-05-12

标签:模块   进阶   切面   小结   源码   框架   接口   核心   协议   消息   关系   简单   测试   工具   数据   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top